【发布时间】:2017-05-01 10:10:43
【问题描述】:
我有一个由 CA 提供的 jks 密钥库,用于签署 JAR。但是,我想通过 HTTPS 托管一些内部应用程序,因此需要创建 SSL 证书,以便可以通过 HTTPS 加密数据。但是,为了避免浏览器中出现不受信任的证书/未知主机警告,我想知道是否可以使用用于签署 JAR 的 jks 密钥库来签署我的 CSR 以创建 SSL 证书。
到目前为止,我已经设法做到以下几点:
-
使用java keytool生成证书和私钥对创建JKS文件,即
keytool -genkeypair -dname "CN=****, OU=****, O=****, L=****, ST=****, C=**" -有效性 1000 -alias mykeystore -keypass ***** -keystore mykeystore.jks -storepass *****
上面的*替换为实际值
-
使用 java keytool 创建 CSR,并将步骤 1 中的 JKS 作为输入
keytool -certreq -alias mykeystore -file mykeystore_csr.pem -keypass ***** -keystore mykeystore.jks -storepass *****
-
使用 keytool 将 CA JKS 密钥库转换为 PKCS
keytool -importkeystore -srcstoretype jks -srckeystore cakeystore.jks -srcalias caalias -srcstorepass ***** -srckeypass ***** -deststoretype pkcs12 -destkeystore cakeystore.p12 -destalias caalias -deststorepass ***** - destkeypass *****
-
使用 OpenSSL 将 CA PKCS 转换为 PEM
openssl pkcs12 -in cakeystore.p12 -out cakeystore.pem
-
使用 OpenSSL 将 CA PEM 转换为 CRT
openssl x509 -outform der -in cakeystore.pem -out cakeystore.crt
此时我希望能够使用 cakeystore.pem 和/或 cakeystore.crt 来签署 mykeystore_csr.pem(来自上面的步骤 2),然后可以将其转换回 JKS 以用作CA 签署的 SSL 证书
这可能吗?任何想法或建议将不胜感激。
谢谢
【问题讨论】:
标签: java ssl-certificate keystore keytool jks