如何创建csr,key,crt并将crt,rootca,subca导入jks?

时间:2018-03-06 05:42:32

标签: java bash openssl keytool jks

为了克服专业知识的疑问,我只是解释一下我们能够生成 csr 的过程?

# generate a new private key and certificate signing request
openssl req -out chorke.csr -new -newkey rsa:2048 -nodes \
-keyout chorke.key

请确认我们谁负责创建 crt 客户端服务器?这里我们充当客户,如果我们必须从 csr 创建 crt & 密钥然后我们可以创建 chorke.crt ,如下所示:

# generate certificate using csr & key
openssl x509 -req -in chorke.csr -signkey chorke.key \
-out chorke.crt

如果负责创建 chorke.crt 服务器权限,那么请指导我们的程序?否则,我们可以将 chorke.crt 发送给服务器以将其添加到服务器。之后,服务器权限向我们发送 rootca subca (中间ca)和 chorke.crt 。然后我们必须将它们导入到新的 client.jks 中,如下所示:

keytool -storepass storepasswd -importcert -keystore client.jks \
-trustcacerts -alias rootca -file rootca.cer

keytool -storepass storepasswd -importcert -keystore client.jks \
-trustcacerts -alias subca -file subca.cer

keytool -storepass storepasswd -importcert -keystore client.jks \
-alias chorke -file chorke.crt

之后我们可以运行 java program ,如下所示导致错误的证书错误

java \
-Djavax.net.ssl.trustStore=./client.jks \
-Djavax.net.ssl.trustStorePassword=storepasswd \
-Djavax.net.ssl.keyStore=./client.jks \
-Djavax.net.ssl.keyStorePassword=storepasswd \
-cp ./lib/*:./bin ChorkeServerTest

上述程序有什么不对?在这种情况下,我们期望从专业知识的建议,指出勘误表并指导我们从生成 csr 到导入 jks 并运行 java程序成功。

1 个答案:

答案 0 :(得分:0)

请在以下 keytool openssl 命令系列中找到,这些命令用于从 .p12 创建 .jks 文件>证书,提取/列出 .jks 密钥库配置作为 .txt 文件的一部分,将默认别名更改为预期别名,使用 openssl 命令将 .p12 证书转换为 .cer ,配置/导入 root-ca intermediate-ca 证书作为 .jks 密钥存储文件的一部分。

keytool 命令创建条目类型为 PrivateKeyEntry

my_keystore.jks 文件
keytool -importkeystore -srckeystore "D:\Certificates\DLOMTE.p12" -srcstoretype pkcs12 -destkeystore "my_keystore.jks" -deststoretype jks

keytool 命令以将 my_keystore.jks 配置列出/提取为 my_keystore.txt 文件

keytool -list -v -keystore my_keystore.jks > my_keystore.txt

keytool 命令可更改 my_keystore.jks 文件中的默认别名

keytool -changealias -alias "<ALIAS NAME AS IN THE KEYSTORE>" -destalias "at oces - prod" -keystore my_keystore.jks

openssl 命令将 .p12 证书转换为 .cer

openssl pkcs12 -in "D:\Certificates\DLOMTE.p12" -clcerts -nokeys -out "D:\Certificates\DLOMTE.cer"

keytool 命令将 rootca 证书作为具有必需别名的 my_keystore.jks 文件的一部分导入

keytool -import -trustcacerts -alias "at oces - prod - rootca" -file "D:\Certificates\OCESPrimaryCA-RootCA.cer" -keystore my_keystore.jks

keytool 命令用于导入 intermediateca 证书作为具有必需别名的 my_keystore.jks 文件的一部分

keytool -import -trustcacerts -alias "at oces - prod - intermediateca" -file "D:\Certificates\OCESPrimaryCA-IntermediateCA.cer" -keystore my_keystore.jks