Java 如何将密钥存储或信任存储更改为.pem文件

Java 如何将密钥存储或信任存储更改为.pem文件,java,encryption,openssl,ssl-certificate,Java,Encryption,Openssl,Ssl Certificate,我用extensions.com_Keystore和.com_truststore获得了一个密钥库和信任库。我需要把它改成.PEM文件。我以前做过,但它是.JKS文件,或者我已经有了.PEM文件 该文件夹有三个文件。 Foo.com\u信任商店 Foo.com_密钥库 密码。这不是一个编程问题,也不是现在SO的共识话题,尽管几年前(在其他堆栈存在之前)主题更广泛。它也是dupe(已经自动建议)和(我的)和cross(一个更合适的位置) “密钥库”或“信任库”描述文件的内容和用途,而不是其格式或类

我用extensions.com_Keystore和.com_truststore获得了一个密钥库和信任库。我需要把它改成.PEM文件。我以前做过,但它是.JKS文件,或者我已经有了.PEM文件

该文件夹有三个文件。 Foo.com\u信任商店 Foo.com_密钥库
密码。

这不是一个编程问题,也不是现在SO的共识话题,尽管几年前(在其他堆栈存在之前)主题更广泛。它也是dupe(已经自动建议)和(我的)和cross(一个更合适的位置)

“密钥库”或“信任库”描述文件的内容和用途,而不是其格式或类型。假设这些都是或曾经是针对Java的,您标记了Java,但实际上并没有说,大约有六种可能的格式,有些答案因类型而异。如果您在Unix上(或Windows上有Unixy子系统,如Windows 10上的WSL、Cygwin或虚拟机上的WSL),则
file
命令应告诉您有哪些子系统。否则,如果您使用Java 9,则
keytool-list
可能会显示正确的类型。(j8通常不会,因为在J9Up中引入了一些兼容性黑客来简化将默认值转换为PKCS12的过程。)

  • 对于PKCS12,您可以使用
    openssl PKCS12
    读取它并在PEM中输出其内容。您可以只包含密钥或证书或两者,以及与密钥匹配或不匹配的证书(在密钥库中);有关详细信息,请参阅

    对于任何其他支持Java的格式,您可以使用
    keytool-importkeystore
    将其转换为PKCS12,如上面链接的Q中所述,然后应用此方法的第一部分

  • 对于任何支持Java的格式,您都可以使用
    keytool{-exportcert-alias$name |-list}-rfc[-file$outfile |>$outfile]
    获取PEM格式的证书或所有证书。这适用于信任库,但不包括密钥库中的私钥

  • 对于任何支持Java的格式,您都可以下载并使用keystorexplorer。我也相信波特尔,但我自己不这么认为


  • 请注意,PEM文件不是一个单独的东西,而是一个类别——虽然这些进程都会生成PEM文件,但它们可能是您想要的droids^W PEM文件,也可能不是。如果是这样,您需要更具体。

    这不是一个编程问题,也不是现在so的共识话题,尽管多年前(在其他堆栈存在之前)主题性更广泛。它也是dupe(已经自动建议)和(我的)和cross(一个更合适的位置)

    “密钥库”或“信任库”描述文件的内容和用途,而不是其格式或类型。假设这些都是或曾经是针对Java的,您标记了Java,但实际上并没有说,大约有六种可能的格式,有些答案因类型而异。如果您在Unix上(或Windows上有Unixy子系统,如Windows 10上的WSL、Cygwin或虚拟机上的WSL),则
    file
    命令应告诉您有哪些子系统。否则,如果您使用Java 9,则
    keytool-list
    可能会显示正确的类型。(j8通常不会,因为在J9Up中引入了一些兼容性黑客来简化将默认值转换为PKCS12的过程。)

  • 对于PKCS12,您可以使用
    openssl PKCS12
    读取它并在PEM中输出其内容。您可以只包含密钥或证书或两者,以及与密钥匹配或不匹配的证书(在密钥库中);有关详细信息,请参阅

    对于任何其他支持Java的格式,您可以使用
    keytool-importkeystore
    将其转换为PKCS12,如上面链接的Q中所述,然后应用此方法的第一部分

  • 对于任何支持Java的格式,您都可以使用
    keytool{-exportcert-alias$name |-list}-rfc[-file$outfile |>$outfile]
    获取PEM格式的证书或所有证书。这适用于信任库,但不包括密钥库中的私钥

  • 对于任何支持Java的格式,您都可以下载并使用keystorexplorer。我也相信波特尔,但我自己不这么认为


  • 请注意,PEM文件不是一个单独的东西,而是一个类别——虽然这些进程都会生成PEM文件,但它们可能是您想要的droids^W PEM文件,也可能不是。如果是这样,您需要更具体。

    谢谢Dave。这真是一个详细的解释,而且很有帮助。谢谢戴夫。这确实是一个详细的解释,而且很有帮助。