我刚刚在运行tomcat 6的linux机器上创建了一个自签名证书。
我创建了这样的密钥,有效期为10年:
keytool -genkey -alias tomcatorange -keyalg RSA -validity 3650
并将密钥库复制到tomcat中的文件夹中,并更新server.xml以指向密钥库。
现在,我的网络管理员要求输入公钥和私钥(对于我们的负载均衡器)
我可以使用以下方法生成公钥:
openssl s_client -connect mydomain.com:8443
但是,如何导出/检索私钥?
这有点棘手。首先,您可以使用keytool将私钥放入PKCS12格式,比Java的各种密钥库格式更可移植/兼容。这是一个在Java密钥库中使用别名为“ mykey”的私钥并将其复制到名为的PKCS12文件中的示例myp12file.p12。[请注意,在大多数屏幕上,此命令都超出了框的右侧:您需要向右滚动才能看到全部内容]
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
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密钥库中删除并进行移动所带来的安全隐患。