如何使用keytool创建证书链?

Tam*_*ath 14 ssl nss keytool

我想在java中创建证书链,如下所示:

ca.mycompany.com
|--asia.mycompany.com
   |--india.mycompany.com
Run Code Online (Sandbox Code Playgroud)

其中ca.mycompany.com是根证书(自签名).

我知道这可以通过OpenSSL实现.但是有可能用keytool实现这一目标吗?

如果没有,我可以使用Mozilla NSS库实现这一目标吗?

Omi*_*ron 24

keytool文档中有一个示例,说明如何执行此操作:

keytool -genkeypair -keystore root.jks -alias root -ext bc:c
keytool -genkeypair -keystore ca.jks -alias ca -ext bc:c
keytool -genkeypair -keystore server.jks -alias server

keytool -keystore root.jks -alias root -exportcert -rfc > root.pem
keytool -storepass <storepass> -keystore ca.jks -certreq -alias ca | keytool -storepass <storepass> -keystore root.jks -gencert -alias root -ext BC=0 -rfc > ca.pem

cat root.pem ca.pem > cachain.pem
keytool -keystore ca.jks -importcert -alias ca -file cachain.pem

keytool -storepass <storepass> -keystore server.jks -certreq -alias server | keytool -storepass <storepass> -keystore ca.jks -gencert -alias ca -ext ku:c=dig,keyEncipherment -rfc > server.pem
cat root.pem ca.pem server.pem > serverchain.pem
keytool -keystore server.jks -importcert -alias server -file serverchain.pem
Run Code Online (Sandbox Code Playgroud)

您还可以使用KeyStore Explorer轻松生成证书链:

  1. 创建新密钥对,这意味着创建自签名证书(根CA).
  2. 右键单击根CA证书并选择"签署新密钥对",这将创建子CA证书和密钥对.
  3. 右键单击子CA证书,然后再次选择"签署新密钥对".

签署新证书

由此产生的链:

在此输入图像描述


Pix*_*ech 5

这是一个完美的教程,可以帮助您完成使用keytool创建证书链的过程.基本上,您需要使用CA中的密钥对证书进行签名,然后将证书安装到您创建的密钥库中.