我有一个运行 Centos 6.8 的测试服务器,在运行 SSL Labs 测试时无法克服此消息:https://www.ssllabs.com/ssltest/analyze.html?d=biduno.com&latest
该服务器容易受到 OpenSSL Padding Oracle 漏洞 (CVE-2016-2107) 的影响并且不安全。等级设置为 F。我相信这与 open openssl 有关,我拥有 2016 年 11 月 10 日的最新版本 OpenSSL 1.1.0c。
难道和我的密码有关?
SSLProtocol ALL -SSLv2 -SSLv3 SSLCipherSuite ECDHE-RSA-AES256-SHA384:AES256-SHA256:AES256-SHA256:!RC4:高:中:+TLSv1:+TLSv1.1:+TLSv1.2:!MD5:!ADH:! aNULL:!eNULL:!NULL:!DH:!ADH:!EDH:!AESGCM SSLHonorCipherOrder 上
答案1
嗯,你必须调整协议、密码和其他一些设置来适应你的口味。您还混合了协议和密码套件,这可能不好。
这是基本的 SSL/TLS 配置www.cryptopp.com,这是我帮助的一个开源项目。它在 CentOS 7 VM 上运行,并在 Qualsys 测试中获得“A”。我们都不是 Apache 专家,因此请从表面上理解配置。我们做了足够多的工作,让用户不会遇到问题,但也仅此而已。
通常您需要“TLS 1.0 及更高版本”( SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
) 和“现代密码套件”( SSLCipherSuite HIGH:!aNULL:!kRSA:!MD5:!RC4
) 之类的内容。这!kRSA
意味着“无 RSA 密钥传输”,这实际上留下了 Diffie-Hellman 和前向保密。
该配置还设置 STS 标头 ( Strict-Transport-Security
)。
# cat /etc/httpd/conf.d/ssl.conf | grep -v '#'
Listen 443 https
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout 300
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost *:443>
SSLEngine on
DocumentRoot "/var/www/html"
ServerName www.cryptopp.com:443
ServerAlias *.cryptopp.com cryptopp.com
ErrorLog logs/error_log
TransferLog logs/access_log
LogLevel warn
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite HIGH:!aNULL:!kRSA:!MD5:!RC4
SSLCertificateFile /etc/pki/tls/certs/cryptopp-com.chain.pem
SSLCertificateKeyFile /etc/pki/tls/private/cryptopp-com.key.pem
SSLCertificateChainFile /etc/pki/tls/certs/cryptopp-com.chain.pem
SSLVerifyClient none
Header set Strict-Transport-Security "max-age=15552001; includeSubdomains;"
</VirtualHost>
我也猜你是不是使用 OpenSSL 1.1.0。相反,您可能使用的是较旧的 FIPS 版本。以下来自同一个 CetOS 7 VM:
$ openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
维护者向后移植补丁,所以你所知道的就是(1)你从 1.0.1e 左右开始,(2)你并不真正知道你现在拥有什么,(3)你有一个类似 Frekenstein 的装置,它已经被拼凑在一起。