java - 如何在命令行上指定 keystore 类型?

标签 java keystore

在 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/

相关文章:

java - 如何使用 SWIG 将 C 结构中的 sockaddr_in 映射到 Java

java - 当无事可做时,java中没有更新?这也许是一个错误?

java - 在 java.security.KeyStore PKCS11 中设置和获取 DES key

java - 我可以在 java keystore 中导入的 key 数量限制是多少?

java - 定义 bool 时 SWIG 语法错误

java - Android 6.0 发布时应用程序崩溃,包括 Logcat,新开发人员

java - 您是否需要显式关闭 Java KeyStore 输入流?

android - 不同帐户在 Google Play 商店发布的两个 apk 文件是否可以使用相同的 key / keystore 进行签名?

java使用带有证书和 keystore 的私钥?

Java Servlet/JSP Cookie 断开连接