您可以使用命令行参数禁用 TLSv1 和任何您想要的密码,如下所示:
java -Djava.security.properties=disabled_tlsv1.properties
Run Code Online (Sandbox Code Playgroud)
该文件disabled_tlsv1.properties具有要禁用的密码列表,并且还支持协议,例如TLSv1。下面列出的其余密码对于 TLSv1.1 来说被认为是不安全的。
不过,这仍然使 TLSv1.1 可行,因为它的一些密码仍然启用。请注意,如果您愿意,您也可以在 JRE 本身中执行此操作,以影响整个服务器,如问题本身所述。
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768,TLSv1,TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_RC4_128_MD5,TLS_RSA_WITH_RC4_128_SHA
Run Code Online (Sandbox Code Playgroud)
可以在此处找到显示此内容以及如何验证 TLSv1 是否已禁用的 git 存储库
小智 7
将 TLSv1.0 替换为 TLSv1:
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH, TLSv1
Run Code Online (Sandbox Code Playgroud)
如何测试?
openssl s_client -connect ip:port -tls1
Run Code Online (Sandbox Code Playgroud)
对于第一部分问题,我能够通过修改如下行来禁用 TLSv1.0(使用 TLSv1 而不是 TLSv1.0)
jdk.tls.disabledAlgorithms=SSLv3、RC4、MD5withRSA、DH、TLSv1
但我仍然想知道,是否有任何可能性我可以在 JRE 级别禁用整个密码套件,例如,删除以下 3 个密码
> RSA_WITH_3DES_EDE_CBC_SHA
> RSA_WITH_AES_128_CBC_SHA
> RSA_WITH_AES_256_CBC_SHA
Run Code Online (Sandbox Code Playgroud)
您可以通过设置 java 选项强制客户端使用特定协议
-Djdk.tls.client.protocols=TLSv1.1,TLSv1.2
Run Code Online (Sandbox Code Playgroud)
或者,如果正在寻找禁用特定密码,您可以尝试设置
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
Run Code Online (Sandbox Code Playgroud)
在 java.security 文件中
| 归档时间: |
|
| 查看次数: |
19795 次 |
| 最近记录: |