我安装了 Nginx 并启用了 SSL。
server {
server_name vorb.de;
listen 443;
root /var/www/vorb.de/pub;
ssl on;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
gzip on;
[…]
}
到目前为止一切正常。唯一让我恼火的是,当您单击锁/https 图标时,Chrome 会显示服务器正在使用 SSL 3.0。此版本的 SSL 已弃用(请参阅https://vorb.de)。当我访问错误页面时,一切都正常,因为它显示正在使用 TLS 1.0(请参阅https://vorb.de/non-existing-page)。我正在运行 Debian 6 Squeeze、Nginx 0.7.67 和 OpenSSL 0.9.8o。
你知道为什么会发生这种情况吗?
答案1
我遇到了类似的问题,注释下面的代码有助于修复错误。最终代码如下所示 -
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_ciphers PROFILE=SYSTEM;
答案2
我彻底重装了系统,现在使用的是 Nginx 1.0.6。这个方法有效,但是非常耗时。
答案3
您可以通过使用指令来控制服务器允许的版本ssl_ciphers
。
类似这样的操作应该会让你的服务器仅允许 TLS 连接:
ssl_ciphers HIGH:!SSLv2:!SSLv3;
至于为什么您的浏览器在两个不同的连接上协商不同的协议,我无法告诉您。
答案4
在 ssl_timeout 和 ssl_ciphers 之间添加代码就足以获得 443 访问权限
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers PROFILE=SYSTEM;
此外,在我的情况下,使用的证书是通过 openSSL 进行的,因此连接不一定是“安全的”,但这对我来说确实有效
感谢 init ssl_protocol 解决方法@Soman Dubey