我刚刚设置了安装了 SSL 的 apache 服务器,一切都很完美,除了当我使用 https:// 打开页面时,当我单击 Chrome 中地址栏旁边的挂锁时,我会收到以下消息:“您与 192 的连接。。。使用过时的密码学进行加密*”
我有一个 Apache 服务器版本:
Server version: Apache/2.4.6 (CentOS)
Server built: Mar 12 2015 15:07:19
和 SSL:
OpenSSL 1.0.1e-fips 11 Feb 2013
这是我的 httpd.conf 文件中的配置:
SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
#Cipher directives end here.
<VirtualHost *:443>
Servername 192.80.91.70
DocumentRoot /var/www/html/examplei/app.example.com
SSLEngine On
ErrorLog /var/www/html/SSLerror.log
CustomLog /var/www/html/SSLrequests.log combined
SSLCertificateFile /etc/httpd/ssl/example.crt
SSLCertificateKeyFile /etc/httpd/ssl/example.key
</VirtualHost>
更新:
我没有注意到,但只有当我转到我的服务器的 IP 地址并且出现“此连接不是私有”屏幕时,我才会在地址栏旁边的挂锁上看到此消息。然后,当我点击继续 我了解风险我再次点击挂锁,现在它说它是用现代密码学加密的。所以我不明白这是否是预期的行为或发生了什么。
答案1
旁白:@CodesInChaos Chrome 在年底之前对 SHA1 证书说“过时的安全设置”,而不是“过时的加密技术”。
这“你的连接不是私人的”您添加的页面实际上是重要的症状。这不是由加密设置引起的,而是由以下情况引起的证书无法验证,因为它是自签名的(这是您的情况openssl req -new -x509
),或者它是由不在信任库中的 CA 签名的(或者您的服务器未配置为发送链接到信任库中的根所需的链证书)或中的名称证书与主机名不匹配。在测试时我看到“非私人”页面还显示“过时的加密技术”,没有连接信息中通常存在的详细信息,即使初始连接确实使用了 Chrome 确实认为现代的密码(在我的情况下是 GCM)。也许这是因为 Chrome 在显示“非私有”页面时实际上会断开连接,因此实际上并没有任何当时加密货币有效。