我有一堆在单个服务器上运行的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