【问题标题】:OpenJDK keytool passwordOpenJDK 密钥工具密码
【发布时间】:2019-07-02 07:23:25
【问题描述】:

我正在尝试在 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 version 11,出现同样的问题:

Warning: use -cacerts option to access cacerts keystore
Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was

【问题讨论】:

  • 可能有人已经把changeit 放在心上并改变了它。您可以在任何已安装的 Java 支持 Web 服务器的配置/属性文件中找到密码。
  • 您会肯定在文档中找到它。仔细看。

标签: java keytool jsse


【解决方案1】:

对于 OpenJDK 8,首先仔细检查密码:

cd D:\java8\jre\lib\security
keytool -list -keystore cacerts -storepass changeit

如果它仍然给您同样的错误,请找到您的 Java 8 安装的确切版本并从 AdoptOpenJDK(例如 OpenJDK8U-jre_x64_windows_hotspot_8u212b04.zip)下载相应的 ZIP 存档。

提取 cacerts 文件 (lib/security/cacerts) 并使用二进制差异工具(例如 fc)将下载存档中的 cacerts 文件的内容与您的本地版本进行比较。如果它们不相同,则可能是您的D:\java8\jre\lib\security\cacerts 文件已被修改。

您可以按照类似的过程来验证 OpenJDK 11 的 cacerts 文件。

另外:您不需要将自定义证书导入到原始D:\java8\jre\lib\security\cacerts 文件中。我个人很少这样做。相反,请保留原件,但在自定义文件夹中创建一份副本,并将您的公司证书添加到该文件夹​​中。在您的情况下,您可以从 ZIP 文件中复制 cacerts 文件并将其移动到您的主目录并将您的公司证书添加到其中,因为您不知道 D:\java8\jre\lib\security\cacerts 的密码。

然后,当您运行 Java 程序时,将其配置为使用您的自定义 cacerts 文件,而不是默认的 cacerts 文件:

java -Djavax.net.ssl.trustStore=path/to/custom/cacerts
     -Djavax.net.ssl.trustStorePassword=changeit
     ...

还有一件事:询问您的管理员——也许他故意更改了cacerts 文件的密码。

【讨论】:

    【解决方案2】:

    我使用了 AdoptOpenJDK,但它给了我相同的结果。它在具有管理权限的 Windows 10 cmd 上运行。

    C:\Windows\system32>"C:\Program Files\AdoptOpenJDK\jdk-11.0.3.7-hotspot\bin\keytool"  -keystore  "C:\Program Files\AdoptOpenJDK\jdk-11.0.3.7-hotspot\lib\security\cacerts"  -importcert -alias sds -file C:\Users\SDS\SDS.crt
    경고: -cacerts 옵션을 사용하여 cacerts 키 저장소에 액세스하십시오.
    키 저장소 비밀번호 입력:
    keytool 오류: java.io.IOException: Keystore was tampered with, or password was incorrect
    

    我执行了以下命令,它说密钥存储文件存在(韩语)。

    C:\Program Files\AdoptOpenJDK\jdk-11.0.3.7-hotspot\bin>.\keytool -list -keystore "C:\Program Files\AdoptOpenJDK\jdk-11.0.3.7-hotspot\lib\security\cacerts" -storepass changeit
    경고: -cacerts 옵션을 사용하여 cacerts 키 저장소에 액세스하십시오.
    키 저장소 유형: JKS
    키 저장소 제공자: SUN
    
    키 저장소에 93개의 항목이 포함되어 있습니다.
    
    verisignclass2g2ca [jdk], 2018. 6. 13., trustedCertEntry,
    인증서 지문(SHA-256): 3A:43:E2:20:FE:7F:3E:A9:65:3D:1E:21:74:2E:AC:2B:75:C2:0F:D8:98:03:05:BC:50:2C:AF:8C:2D:9B:41:A1
    digicertassuredidg3 [jdk], 2017. 12. 1., trustedCertEntry,
    인증서 지문(SHA-256): 7E:37:CB:8B:4C:47:09:0C:AB:36:55:1B:A6:F4:5D:B8:40:68:0F:BA:16:6A:95:2D:B1:00:71:7F:43:05:3F:C2
    verisignuniversalrootca [jdk], 2017. 12. 1., trustedCertEntry,
    인증서 지문(SHA-256): 23:99:56:11:27:A5:71:25:DE:8C:EF:EA:61:0D:DF:2F:A0:78:B5:C8:06:7F:4E:82:82:90:BF:B8:60:E8:4B:3C
    

    【讨论】:

    • 我认为这不是您问题的答案,是吗?如果不是,这是您问题的附加信息,请edit您的问题并包含此信息,而不是将其作为答案发布。如果您这样做,请删除此答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 2019-03-05
    • 2017-06-14
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    相关资源
    最近更新 更多