我有一堆在单个服务器上运行的Java应用程序。

我想默认禁用服务器上所有应用程序的TLSv1和其他不安全协议,但是允许某些应用程序使用命令行参数来覆盖它。

例如,我可以在JVM的java.security文件中使用类似的行来默认情况下为所有应用禁用TLSv1。

jdk.tls.disabledAlgorithms=TLSv1, SSLv3


然后,我尝试使用jdk.tls.client.protocols属性为某些应用程序启用它,但它似乎并未覆盖JRE中设置的内容。

例如如果我已在java.security中禁用了TLSv1,则不会使用它

java -Djdk.tls.client.protocols=TLSv1 MyTestApp


能做到吗?还是我需要采取其他方法?

最佳答案

看来我可以使用以下命令行arg来执行此操作。我以为我最近尝试过这种方法,但是没有用,但是今天我又尝试了一次,看来;-)

java -Djava.security.properties=disabled_tlsv1.properties MyTestApp

其中disabled_tlsv1.properties是一个文件,其中包含与java.security文件相同的行

disabled_tlsv1.properties

jdk.tls.disabledAlgorithms=TLSv1, SSLv3, RC4

10-07 12:05
查看更多