在 java.security 文件中,您可以指定 keystore.type 值。但是,这看起来似乎更改了所有 JVM 实例的默认 keystore 类型。我只想更改它的一个实例。
目前,它设置为“jks”,但我需要它为“jceks”。我尝试了 -Djava.security.keystore.type=jceks
但这似乎没有达到我想要的效果。
正确的做法是什么?
最佳答案
-Dname=value
设置系统属性; java.security
中的设置是安全属性而不是系统属性,不能直接在命令行上设置。您可以创建一个补充(或替换)文件并使用 sysprop -Djava.security.properties=name_of_file_having_keystore_setting
指定该文件,只要您 (或其他任何人)没有更改 java.security 中 security.overridePropertiesFile=true
的默认设置。类似:How can I disable TLSv1 without change source code? .
请注意,如果您只需更改默认情况下 JSSE for SSL/TLS/HTTPS/etc 使用的信任库和/或 keystore 的类型,这些即可使用 sysprops javax.net.ssl.{trust,key}StoreType
(以及 {trust,key}Store{,Password}
)。
此外,您可能还想知道,Java9 更新将安装时的默认设置更改为 PKCS12,这比 JKS 更安全、更可移植/可互操作。
关于java - 如何在命令行上指定 keystore 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52482102/