我们可以从 JRE 的“cacerts”文件中导出证书并将其导入到更高的 JRE 版本吗?

aby*_*007 4 java ssl-certificate cacerts

我使用的是 JRE 8u211。我在 cacerts 中添加了一些证书。但是当我将 JRE 升级到 8u261 时,这些证书没有被导入。所以现在我想使用别名以编程方式从 8u211 的 cacerts 文件中导出所需的证书,然后将这些证书导入到 8u261 的 cacerts 文件中。

这是否可能或支持?

提前致谢。

Gio*_*uri 8

证书只是一个数据。您绝对可以将其导出到文件,然后将该数据导入到其他文件中。

如果您只想将一个信任库文件的数据导入到另一个信任库文件中,则可以直接使用缓冲区,而无需将数据存储到中间文件中:

keytool.exe -importkeystore -srckeystore %JAVA_HOME%\lib\security\cacerts -destkeystore \your\file\path\filename
            -deststoretype jks
            -srcstorepass changeit -deststorepass changeit
            -v -noprompt
Run Code Online (Sandbox Code Playgroud)

不过,您也可以一一进行这两个操作:

  1. 导出证书:

    keytool -export -alias alias_name -keystore path_to_keystore_file -rfc -file path_to_certificate_file
    
    Run Code Online (Sandbox Code Playgroud)
  2. 导入证书:

    keytool -importcert -alias alias_name -file path_to_certificate_file -keystore truststore_file
    
    Run Code Online (Sandbox Code Playgroud)

有关此内容的更多信息,请阅读此处此处此处