我应该使用什么SSLCipherSuite来删除这些套件?

我目前的命令:

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命令来删除对这些的支持?

为了解决这种情况,我build议使用openssl ciphers命令行工具, 例如

 openssl ciphers -v 'RSA+AES' | sort 

其中将列出该OpenSSL密码名称的单个密码套件; -v命令行选项提供更多信息(如该密码组的协议版本),并使输出格式更像SSLScan输出。 sort的使用是可选的; 我个人发现使用sorting列表search名称比较容易,比如您提供的名称。

我build议在密码名称周围使用单引号,以便它不被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指令中提到的所有有罪的名字,只要你的客户端有足够的剩余受支持的密码组。

希望这可以帮助!