所以我有一个使用 SSL 证书实现不同功能的设备。
我使用 keytool 生成了一个 CSE,命令如下:
keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/msw/data/keystore -storepass changeit
keytool -certreq -alias tomcat -keyalg RSA -keystore /opt/msw/data/keystore -storepass changeit -file /root/certreq.csr
它生成了我用来下载证书的 CSR,然后我使用
“keytool -import -alias tomcat -trustcacerts -keystore /opt/msw/data/keystore -storepass changeit -file /root/server.cert”
到目前为止,一切都很好。
但是,使用 SSL 的一个组件需要证书和私钥,当然我没有——而且我没有看到使用 keytool 从 Tomcat 导出私钥的明显方法,有吗?
答案1
信不信由你,keytool 不支持此功能。到目前为止,我发现的最佳解决方案是可从以下网址下载的软件和说明本网站。
我通常使用 openssl 生成密钥,然后使用此方法导入密钥,因为 keytool 也不支持该操作。
要生成 2048 位密钥:
openssl genrsa -out host.domain.com.key 2048
要从该密钥创建密钥库:
KEY=host.domain.com
openssl pkcs8 -topk8 -nocrypt -in $KEY.key -inform PEM -out key.der -outform DER
openssl x509 -in $KEY.crt -inform PEM -out cert.der -outform DER
wget http://www.agentbob.info/agentbob/81/version/default/part/AttachmentData/data/ImportKey.class
java ImportKey key.der cert.der