我正在尝试在 OpenJDK 中为 https 连接注册公司证书
我在 OpenJDK
中运行了以下命令verion 8. 它要求我输入密码。 Oracle JDK 的默认密码是“changeit”,但它不适用于 OpenJDK
我曾尝试使用密码 changeit
但它没有用。
OpenJDK 8:
D:\java8\bin\keytool.exe -keystore "D:\java8\jre\lib\security\cacerts" -importcert -alias sds -file C:\Users\SDS\SDS.crt
OpenJDK 版本 11:
D:\jdk-11.0.2\lib\security>D:\jdk-11.0.2\bin\keytool.exe -keystore D:\jdk-11.0.2\lib\security\cacerts -importcert -alias sds -file C:\Users\SDS\SDS.crt
OpenJDK 8:
keytool 오류: java.io.IOException: Keystore was tampered with, or password was incorrect
OpenJDK 11版本,出现同样问题:
Warning: use -cacerts option to access cacerts keystore
Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was
最佳答案
对于 OpenJDK 8,首先仔细检查密码:
cd D:\java8\jre\lib\security
keytool -list -keystore cacerts -storepass changeit
如果它继续给您同样的错误,请找到您的 Java 8 安装的确切版本并从 AdoptOpenJDK 下载相应的 ZIP 存档。 (例如 OpenJDK8U-jre_x64_windows_hotspot_8u212b04.zip )。
提取
cacerts
文件( lib/security/cacerts
)并使用二进制差异工具(例如 fc )比较 cacerts
的内容文件从下载的存档到您的本地版本。如果它们不相同,则可能是您的 D:\java8\jre\lib\security\cacerts
文件已被修改。您可以按照类似的过程来验证 OpenJDK 11 的
cacerts
文件。另外:您不需要将自定义证书导入原始
D:\java8\jre\lib\security\cacerts
文件。我个人很少这样做。相反,保留原始文件但在自定义文件夹中创建它的副本并将您的公司证书添加到该文件夹中。在您的情况下,您可以复制 cacerts
从 ZIP 文件中提取文件并将其移动到您的主目录并将您的公司证书添加到该目录中,因为您不知道 D:\java8\jre\lib\security\cacerts
的密码.然后当您运行 Java 程序时,将其配置为使用您的自定义
cacerts
文件而不是默认 cacerts
文件:java -Djavax.net.ssl.trustStore=path/to/custom/cacerts
-Djavax.net.ssl.trustStorePassword=changeit
...
还有一件事:询问您的管理员——也许他故意更改了
cacerts
的密码。文件。
关于java - OpenJDK key 工具密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56847306/