一尘不染

如何从自签名证书的密钥库中导出私钥

tomcat

我刚刚在运行tomcat 6的linux机器上创建了一个自签名证书。

我创建了这样的密钥,有效期为10年:

keytool -genkey -alias tomcatorange -keyalg RSA -validity 3650

并将密钥库复制到tomcat中的文件夹中,并更新server.xml以指向密钥库。

现在,我的网络管理员要求输入公钥和私钥(对于我们的负载均衡器)

我可以使用以下方法生成公钥:

openssl s_client -connect mydomain.com:8443

但是,如何导出/检索私钥?


阅读 782

收藏
2020-06-16

共1个答案

一尘不染

这有点棘手。首先,您可以使用keytool将私钥放入PKCS12格式,比Java的各种密钥库格式更可移植/兼容。这是一个在Java密钥库中使用别名为“
mykey”的私钥并将其复制到名为的PKCS12文件中的示例myp12file.p12。[请注意,在大多数屏幕上,此命令都超出了框的右侧:您需要向右滚动才能看到全部内容]

keytool -v -importkeystore -srckeystore .keystore -srcalias mykey -destkeystore myp12file.p12 -deststoretype PKCS12
Enter destination keystore password:  
Re-enter new password: 
Enter source keystore password:  
[Storing myp12file.p12]

现在,该文件myp12file.p12包含PKCS12格式的私钥,可以由许多软件包直接使用或使用openssl pkcs12命令进行进一步处理。例如,

openssl pkcs12 -in myp12file.p12 -nocerts -nodes
Enter Import Password:
MAC verified OK
Bag Attributes
    friendlyName: mykey
    localKeyID: 54 69 6D 65 20 31 32 37 31 32 37 38 35 37 36 32 35 37 
Key Attributes: <No Attributes>
-----BEGIN RSA PRIVATE KEY-----
MIIC...
.
.
.
-----END RSA PRIVATE KEY-----

打印出未加密的私钥。

请注意,这是一个 私钥 有责任了解将其从Java密钥库中删除并进行移动所带来的安全隐患。

2020-06-16