我是第一次使用 ssl 设置 nginx 服务器。我买了一个 ssl 证书,完成了我生成 csr 的整个过程。我已经激活了我的 ssl 购买并最终下载了证书。
当我下载证书时,我得到了一个 zip 文件夹。zip 文件夹中有 3 个文件;my_site.ca-bundle 、 my_site.crt 和 my_site.p7b 。
我了解我应该如何配置 nginx ,但我不知道下载中包含的 ca-bundle 和 p7b 文件的重要性。
对于 nginx 配置,我只需要一个 crt 文件和生成 CSR 时的密钥:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.chained.crt;
ssl_certificate_key www.example.com.key;
...
}
Run Code Online (Sandbox Code Playgroud)
ca-bundle 和 p7b 文件重要吗,还是我只需要 crt 文件?
我使用本指南成功创建了一些 LE SSL 证书。
但是,当我更新我的 nginx 配置以使用证书并将所有端口 80 流量重定向到 443 时。http 成功重定向到 https,该站点不会加载。浏览器检测到我有一个有效的证书,但说我没有安全连接。这是我在我的/var/log/nginx/error.log:
2016/03/08 00:11:49 [error] 7301#0: *14 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: 55.555.55.555, server: 0.0.0.0:443
Run Code Online (Sandbox Code Playgroud)
错误说我没有定义 SSL 证书,尽管我这样做了。这是我的配置:
server {
listen 443 ssl;
server_name cooldomain.pizza www.cooldomain.pizza
ssl_certificate /etc/letsencrypt/live/cooldomain.pizza/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cooldomain.pizza/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
root /home/ubuntu/www/cooldomain-pizza;
index index.php index.html index.htm;
server_name cooldomain.pizza www.cooldomain.pizza;
charset utf-8;
location / {
try_files $uri $uri/ =404; …Run Code Online (Sandbox Code Playgroud) 有没有办法为同一服务指定 2 个 SRV 记录,一个实现安全,一个不实现?规范上是否有足够的信息来表明这样的事情?
我不认为您可以将 SSL 与 localhost 一起使用,但我遇到了这个问答,它说您可以。
我正在寻找类似的说明来执行此 nginx 而不是 apache。
我在跑:
sudo letsencrypt certonly -d localhost
Run Code Online (Sandbox Code Playgroud)
哪个返回 Requested domain localhost is not a FQDN
我想做的事情是否可行,如果可以,如何做?
我正在尝试设置与运行 postgresql 的服务器的远程数据库连接。我已经在使用 LE 证书的远程服务器上运行 nginx。我的问题是 postgresql 证书是否需要像让我们加密这样的 CA 签名,或者自签名证书是否就足够了。我试图了解对我的数据库连接使用自签名证书时的安全风险是什么。
我正在尝试为我的网站设置 SSL 证书。但是我的网站this site can't be reached在 Chrome 中响应。
在证书管理器中,它显示我的证书的关联资源是我的 ELB。ELB 设置为 HTTPS,端口 443。其目标组是 HTTP,端口 80。该站点在浏览 http/80 时正常工作。我在想我的设置意味着用户点击 HTTPS ELB,然后 ELB 将使用端口 80 为我的网站提供服务。
httpstat https://www.ereverse.com 输出:
> curl -w <output-format> -D <tempfile> -o <tempfile> -s -S ereverse.com curl error: curl: (7) Failed to connect to www.ereverse.com port 443: Connection refused
Run Code Online (Sandbox Code Playgroud)
我还应该注意到我的应用程序是通过 docker 运行的,它正在运行,-p 80:5000并且Dockerfilehas EXPOSE 80 443。
我正在使用有效的证书,但无法获得客户端证书。lighttpd 服务失败并出现错误:
(connections-glue.c.200) SSL: 1 错误:140890C7:SSL 例程:SSL3_GET_CLIENT_CERTIFICATE:peer 没有返回证书
我的配置是这样的:
$SERVER["socket"] == ":443" {
protocol = "https://"
ssl.engine = "enable"
ssl.disable-client-renegotiation = "enable"
#server.name = "mywebsite.com"
ssl.pemfile = "/etc/lighttpd/ssl/mywebsite.com.pem"
ssl.ca-file = "/etc/lighttpd/ssl/mywebsite.com.csr"
ssl.ec-curve = "secp384r1"
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
ssl.honor-cipher-order = "enable"
ssl.cipher-list = "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS"
# HSTS(15768000 seconds = 6 months)
#setenv.add-response-header = (
# "Strict-Transport-Security" => "max-age=15768000;"
#)
#ask for client cert
ssl.verifyclient.exportcert = "enable"
ssl.verifyclient.activate = "enable"
ssl.verifyclient.username = "SSL_CLIENT_S_DN_CN"
ssl.verifyclient.enforce = "enable"
ssl.verifyclient.depth = 3
} …Run Code Online (Sandbox Code Playgroud) 我的 Windows Server 2008R2 现在有 SSL v2 协议。由于安全漏洞,我已计划禁用 SSL v2。
那么我应该启用 SSL v3 还是应该直接跳转到TLS 1.1\ TLS 1.2 ?
如果我禁用 SSL v2 并且不启用任何更高版本会不会有任何安全问题?
我想知道是否可以将 Nginx 配置为向给定的微服务动态发送请求(无需 SSL 终止)?
在我的架构中,我有两个微服务。让我们假设它们是 localhost:5000 和 localhost:5100。我想发送所有/api以 localhost:5000 和/serviceslocalhost:5100开头的请求(来自 Nginx 代理)。我已经在两个微服务上配置了 SSL,所以我不需要在 Nginx 上终止 SSL。
这可能吗?
我收到unable to get local issuer certificate了accounts.google.com超过SSL。我从https://curl.haxx.se/ca/cacert.pem下载了一个更新的 CA 文件并openssl s_client用于渲染:
? ~ openssl s_client -connect accounts.google.com:443 -CAfile ~/certs/cacert.pem
CONNECTED(00000003)
depth=2 /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=accounts.google.com
i:/C=US/O=Google Inc/CN=Google Internet Authority G2
1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIEoTCCA4mgAwIBAgIIZMJyEcZ8LIAwDQYJKoZIhvcNAQELBQAwSTELMAkGA1UE
BhMCVVMxEzARBgNVBAoTCkdvb2dsZSBJbmMxJTAjBgNVBAMTHEdvb2dsZSBJbnRl
cm5ldCBBdXRob3JpdHkgRzIwHhcNMTcwMzE2MDkxNjU0WhcNMTcwNjA4MDg1NDAw
WjBtMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN …Run Code Online (Sandbox Code Playgroud) ssl ×10
nginx ×4
lets-encrypt ×3
amazon-elb ×1
lighttpd ×1
linux ×1
openssl ×1
php-fpm ×1
postgresql ×1
proxy ×1
srv-record ×1