fee*_*0de 8 ssl https lets-encrypt apache2
我想知道在 ssllabs.com 的每个类别上获得 100% 需要哪些步骤。我知道这可能会导致旧系统出现问题,但我不在乎。
我的letsencrypt.org 证书使用 4096 位。这是我使用以下配置可以获得的最好成绩:
SSLCipherSuite AES256+EECDH:AES256+EDH:!aNULL
SSLHonorCipherOrder on
SSLProtocol all -TLSv1.1 -TLSv1 -SSLv3 -SSLv2
Run Code Online (Sandbox Code Playgroud)
我在某处读到可以使用预先生成的 dhparam 文件改进密钥交换。
所以我使用openssl dhparam -out dhparam.pem 4096(这花了大约一个小时)生成了这个文件,并将它添加到我的 apache 配置中使用
SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Run Code Online (Sandbox Code Playgroud)
但这会导致与以前相同的分数。那么我在这里错过了什么?
从 2017-10 开始,如果您使用的是 Diffie-Hellman,则您应该同时拥有DH 参数和具有等效 4096 位 RSA 的密钥。
您至少为 2048 位密钥提供了一个证书。您在该证书中也有不寻常的元数据,请检查(用于说“我不为非 sni 客户提供服务”的默认蛇油证书通常只有主机名Common Name)
编辑:对于您专门不提供非 SNI 客户端的证书,您不会在 SSL 实验室评级中受到处罚。您也不会因作为证书链的一部分提供给已知根的弱密钥证书而受到惩罚。
您将在ssllabs github 帐户上找到有关评级的完整文档。
对于依赖 DHE 或 ECDHE 密钥交换的套件,在确定整体握手强度时会考虑 DH 参数的强度。许多支持 DHE 的服务器使用提供 1024 位安全性的 DH 参数。在此类服务器上,即使私钥更强(通常为 2048 位),密钥交换的强度也永远不会超过 1024 位。
评级指南没有说,但我能够确认如果您的服务器喜欢secp256v1(相当于 3k 位 RSA)同时提供可以使用的 ECDHE 密码secp384v1(相当于 7k 位 RSA),您将无法获得 100 评级。
Chrome 57 / Win 7
R
RSA 4096 (SHA256)
TLS 1.2 > http/1.1
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
ECDH secp256r1 FS
Run Code Online (Sandbox Code Playgroud)
Apache 手册确实列出了一个选项来强制执行此操作(仅Curves按强度对参数进行排序似乎是不够的)
兼容性:在 httpd 2.4.8 及更高版本中可用,如果使用 OpenSSL 1.0.2 或更高版本 SSLOpenSSLConfCmd ECDHParameters brainpoolP256r1
https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslopensslconfcmd
如果您在此处命名一条曲线,该曲线可被视为等同于 RSA >=4096 位,则 ssl 实验室将使用该曲线用于您的 ECDHE 密码 - 列出无法再与您的服务器成功握手的客户端,因为它们不支持该曲线.
仔细调查你想支持的浏览器列表中,选择一个非标准的EC曲线将许多旧的浏览器让你的网站无法访问!
| 归档时间: |
|
| 查看次数: |
8424 次 |
| 最近记录: |