我意识到这看起来至少是其他一些问题的重复,但我已经将它们读了好几遍,但仍然做错了什么。
以下是我的 myexample.com nginx 配置文件的内容,位于/etc/nginx/sites-available.
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name myexample.com www.myexample.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem;
#Configures the publicly served root directory
#Configures the index file to be served
root /var/www/myexample.com;
index index.html index.htm;
}
Run Code Online (Sandbox Code Playgroud)
它有效,当我转到https://myexample.com 时,内容已提供并且连接是安全的。所以这个配置看起来不错。
现在,如果我将 ssl 端口更改为 9443 并重新加载 nginx 配置,则配置会重新加载而不会出错,但访问https://myexample.com 会在浏览器中显示错误(无法访问此站点 / myexample.com 拒绝访问连接。ERR_CONNECTION_REFUSED)
我在这里、这里和这里(以及其他)尝试了建议和文档,但我总是收到 ERR_CONNECTION_REFUSED 错误。
我应该注意,我可以使用非标准端口,然后将该端口显式键入 URL,例如https://myexample.com:9443。但我不想那样做。我想要的是让用户能够在任何浏览器中输入 myexample.com 并让 nginx 自动重定向到安全连接。
同样,当我使用标准 …
我创建了一个仅使用 TLS v1.2 在 Qualsys SSL Labs 上获得满分的 nginx 配置,我想尝试使用 TLS v1.2 和 v1.3 获得满分。
考虑这个 nginx.conf 版本的片段,它是 A+ 和 100% 分数的一部分:
ssl_protocols TLSv1.2;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
Run Code Online (Sandbox Code Playgroud)
它抱怨了几个密码套件,但它仍然给出了一个完美的分数:
现在,如果我将 TLS v1.3 作为唯一的配置更改添加到组合中,则分数会发生变化。
ssl_protocols TLSv1.2 TLSv1.3;
Run Code Online (Sandbox Code Playgroud)
我认为那些弱的 CBC 密码很生气:
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028) ECDH secp384r1 (eq. 7680 bits RSA) FS WEAK 256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) ECDH secp384r1 (eq. 7680 bits RSA) FS WEAK 256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (0x6b) DH 4096 bits FS WEAK 256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39) DH 4096 bits FS WEAK
Run Code Online (Sandbox Code Playgroud)
没有真正完美地删除 CBC …