Java 如何将密钥存储或信任存储更改为.pem文件
我用extensions.com_Keystore和.com_truststore获得了一个密钥库和信任库。我需要把它改成.PEM文件。我以前做过,但它是.JKS文件,或者我已经有了.PEM文件 该文件夹有三个文件。 Foo.com\u信任商店 Foo.com_密钥库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(一个更合适的位置) “密钥库”或“信任库”描述文件的内容和用途,而不是其格式或类
密码。这不是一个编程问题,也不是现在SO的共识话题,尽管几年前(在其他堆栈存在之前)主题更广泛。它也是dupe(已经自动建议)和(我的)和cross(一个更合适的位置) “密钥库”或“信任库”描述文件的内容和用途,而不是其格式或类型。假设这些都是或曾经是针对Java的,您标记了Java,但实际上并没有说,大约有六种可能的格式,有些答案因类型而异。如果您在Unix上(或Windows上有Unixy子系统,如Windows 10上的WSL、Cygwin或虚拟机上的WSL),则
file
命令应告诉您有哪些子系统。否则,如果您使用Java 9,则keytool-list
可能会显示正确的类型。(j8通常不会,因为在J9Up中引入了一些兼容性黑客来简化将默认值转换为PKCS12的过程。)
openssl PKCS12
读取它并在PEM中输出其内容。您可以只包含密钥或证书或两者,以及与密钥匹配或不匹配的证书(在密钥库中);有关详细信息,请参阅
对于任何其他支持Java的格式,您可以使用keytool-importkeystore
将其转换为PKCS12,如上面链接的Q中所述,然后应用此方法的第一部分
keytool{-exportcert-alias$name |-list}-rfc[-file$outfile |>$outfile]
获取PEM格式的证书或所有证书。这适用于信任库,但不包括密钥库中的私钥
请注意,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的过程。)
openssl PKCS12
读取它并在PEM中输出其内容。您可以只包含密钥或证书或两者,以及与密钥匹配或不匹配的证书(在密钥库中);有关详细信息,请参阅
对于任何其他支持Java的格式,您可以使用keytool-importkeystore
将其转换为PKCS12,如上面链接的Q中所述,然后应用此方法的第一部分
keytool{-exportcert-alias$name |-list}-rfc[-file$outfile |>$outfile]
获取PEM格式的证书或所有证书。这适用于信任库,但不包括密钥库中的私钥
请注意,PEM文件不是一个单独的东西,而是一个类别——虽然这些进程都会生成PEM文件,但它们可能是您想要的droids^W PEM文件,也可能不是。如果是这样,您需要更具体。谢谢Dave。这真是一个详细的解释,而且很有帮助。谢谢戴夫。这确实是一个详细的解释,而且很有帮助。