我现在的命令:
SSLProtocol -ALL -SSLv2 -SSLv3 -TLSv1 +TLSv1.1 +TLSv1.2
SSLHonorCipherOrder On
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!RC4然而,当我运行SSLScan时,我会得到以下密码仍然可用:
Accepted TLSv1 256 bits DHE-RSA-AES256-SHA
Accepted TLSv1 256 bits AES256-SHA
Accepted TLSv1 128 bits DHE-RSA-AES128-SHA
Accepted TLSv1 128 bits AES128-SHA
Accepted TLSv1 168 bits EDH-RSA-DES-CBC3-SHA
Accepted TLSv1 168 bits DES-CBC3-SHA如何修改我的SSLCipherSuite命令以删除对这些命令的支持?
发布于 2016-03-16 06:32:58
为了解决这种情况,我建议使用openssl ciphers命令行工具,例如:
openssl ciphers -v 'RSA+AES' | sort它将列出该OpenSSL密码名称的各个密码套件;-v命令行选项提供更多信息(例如该加密套件的协议版本),并使输出格式更像SSLScan输出。sort的使用是可选的;我个人认为使用排序列表搜索名称(如您提供的名称)比较容易。
我建议在密码名周围使用单引号,这样它就不会被shell解释。请注意,使用协议版本也有效,例如:
openssl ciphers 'TLSv1.2'使用这种方法,并遍历协议版本和密码名,我们发现罪魁祸首是DH+AES256,它提供:
openssl ciphers -v `DH+AES256`
...
DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
...另一个罪魁祸首是DH+AES:
openssl ciphers -v 'DH+AES' | sort
...
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
...还有DH+3DES,它提供:
openssl ciphers -v 'DH+3DES' | sort
...
EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1
...RSA+AES名称提供了两个不想要的密匙:
openssl ciphers -v 'RSA+AES' | sort
...
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
...
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
...最后,还有RSA+3DES:
openssl ciphers -v 'RSA+3DES' | sort
...
DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1因此,您可以删除SSLCipherSuite指令中提到的所有有罪名称,前提是您的客户还需要足够的支持密码。
希望这能有所帮助!
https://serverfault.com/questions/763818
复制相似问题