欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用keytool工具产生带根CA和二级CA的用户证书

程序员文章站 2022-06-06 22:24:15
使用keytool工具产生带根CA和二级CA的用户证书 1 生成根CA 1.1 生成根CA证书 根CA实际是一张自签CA,自签CA的使用者和颁发者都是它自己。使用下面的命令生成根证书,如果没有指定 则会使用默认在用户Home目录下的 秘钥库(如果没有则会创建),输入秘钥库的密码,填写根证书的信息,最 ......

使用keytool工具产生带根ca和二级ca的用户证书

1 生成根ca

1.1 生成根ca证书

  根ca实际是一张自签ca,自签ca的使用者和颁发者都是它自己。使用下面的命令生成根证书,如果没有指定keystore则会使用默认在用户home目录下的.keystore秘钥库(如果没有则会创建),输入秘钥库的密码,填写根证书的信息,最后填写根证书秘钥对的密码。

keytool -genkeypair -alias rootca -keyalg rsa

  如图是我填写的根证书信息,根ca的名字叫rootca:

使用keytool工具产生带根CA和二级CA的用户证书

1.2 导出根ca证书

  使用keytool的导出功能,从秘钥库中导出根证书,输入秘钥库的密码,导出的证书文件为rootca.cer命令如下:

keytool -exportcert -alias rootca -file rootca.cer

2 生成二级ca

2.1 生成二级ca证书

   二级ca证书需要由根证书进行签发,首先需要使用keytool生成二级ca的证书,但是此时的证书还是张自签证书,我们需要从中生成一个二级ca的证书请求(包含了公钥),然后通过将证书请求到rootca签发我们的二级证书,然后我们在将rootca签发的二级ca证书导入到导出证书请求的秘钥库中,完成二级ca的生成。下面是生成二级ca证书命令,此时是张自签证书:

keytool -genkeypair -alias subca -keyalg rsa

  下面是二级ca证书的信息,名字叫subca,如下图所示:
使用keytool工具产生带根CA和二级CA的用户证书
  此时的证书颁发者和使用者都是自已,如下图所示:
使用keytool工具产生带根CA和二级CA的用户证书

2.2 从二级ca的秘钥对中生成证书请求

  此时签的二级ca证书是一张自签证书,颁发者和使用者都是自身,我们需要从二级ca证书的keypair中导出证书请求,下面是导出证书请求(带公钥)的命令,subca是我们上面生成的二级ca的秘钥对名字,最终导出证书请求文件为subca.csr

keytool -certreq -alias subca -file subca.csr

2.3 使用证书请求从根ca中签发证书

  通过keytool工具的签发证书功能,使用rootca对二级ca的证书请求(subca.csr)签发一张证书。命令如下,alias指定证书的颁发者,infile指定证书请求文件,outfile是签发证书的名字:

keytool -gencert -alias rootca -infile subca.csr -outfile subca.cer

  可以看到该证书的颁发者已经是rootca,rootca的主题是chuanyeca了:
使用keytool工具产生带根CA和二级CA的用户证书

2.4 导入二级ca到秘钥库中

  此时需要将根ca签发的二级ca导入会秘钥库中,秘钥库中的秘钥对对应的自签证书将会更新问根ca签发的证书,导入的命令如下,subca之前用来生成证书请求的秘钥对名字:

keytool -importcert -alias subca -file subca.cer

  此时查看一下秘钥库中的subca的秘钥对的证书的颁发者是roota了:
使用keytool工具产生带根CA和二级CA的用户证书]

3 使用二级证书签发用户证书

3.1 生成用户证书

  签发用户证书的流程与产生二级ca的过程是一样的,下面我们进行产生用户shayne的证书,将第2步中的所有rootca该为二级ca的subca,将subca变为shayne,先产生shayne的自签证书,命令如下:

keytool -genkeypair -alias shayne -keyalg rsa

3.2 导出用户证书请求

  导出的命令如下:

keytool -certreq -alias shayne -file shayne.csr

3.3 用二级ca签发用户证书

  签发的命令如下:

keytool -gencert -alias subca -infile shayne.csr -outfile shayne.cer

3.4 导如用户证书到秘钥库中

  导如证书到秘钥库的命令如下:

keytool -importcert -alias shayne -file shayne.cer

  查看我们的秘钥库中的用户的证书信息如下图:
使用keytool工具产生带根CA和二级CA的用户证书

  查看证书文件如下图:

使用keytool工具产生带根CA和二级CA的用户证书

4 查看用户证书链

   需要先将根证书和二级ca证书安装到本地电脑的证书信任库中,双击shayne.cer才能看到该证书是已被信任,而且能够看到如下图的证书链关系:
使用keytool工具产生带根CA和二级CA的用户证书