将前一步生成的证书的申请文件,传递给根CA机构
# 最好将申请文件,传输到指定的目录下,这样便于管理 [root@centos6 tls]$scp /etc/pki/tls/subca.csr 172.18.253.127:/etc/pki/CAC CA颁发证书
此时切换到根CA主机,生成证书
# 这里的时间必须要进行指定。这时证书颁发机构指定的证书的有效期。 # [root@localhost CA]#openssl ca -in /etc/pki/CA/subca.csr -out /etc/pki/CA/certs/subca.crt -days 3650 Using configuration from /etc/pki/tls/openssl.cnf Enter pass phrase for /etc/pki/CA/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 1 (0x1) Validity Not Before: Sep 11 14:38:13 2017 GMT Not After : Sep 11 14:38:14 2018 GMT Subject: countryName = CN stateOrProvinceName = shandong organizationName = pojun.tech organizationalUnitName = opt commonName = subca.pojun.tech X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: DB:3E:9C:F4:F4:E9:42:15:00:E7:35:52:FE:04:9A:48:8C:BD:1A:1B X509v3 Authority Key Identifier: keyid:01:17:F1:CB:91:4B:20:AD:C7:DF:13:05:A4:D8:83:B2:AB:75:D1:05 Certificate is to be certified until Sep 11 14:38:14 2018 GMT (3650 days)Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated #此时查看index.txt 文件中,会看到增加了一条新的记录。 [root@localhost CA]#cat index.txt V 180911143814Z 01 unknown /C=CN/ST=shandong/O=pojun.tech/OU=opt/CN=subca.pojun.techD 将根CA生成的证书颁发给请求者
# 主机B是作为子CA机构存在的,所以证书文件,必须是cacert.pem,否则,子CA将不能够给其他用户颁发证书。 [root@localhost CA]#scp /etc/pki/CA/certs/subca.crt 172.18.250.114:/etc/pki/CA/cacert.pem 普通用户向子CA机构,申请证书这一个过程,与子CA向根CA申请证书的过程是类似的。我们将命令的记录如下
#生成私钥文件 # 因为是普通用户,所以生成的私钥文件应该与之前的cacert.pem 有所区别 [root@localhost ~]# (umask 066; openssl genrsa -out /etc/pki/tls/private/app.key 1024) #利用私钥文件,生成证书申请文件 [root@localhost ~]# openssl req -new -key /etc/pki/tls/private/app.key -out /etc/pki/tls/app.csr # 将证书申请文件发送给 子CA证书颁发机构 [root@localhost ~]# scp /etc/pki/tls/app.csr 172.18.250.114:/etc/pki/CA # 切换到子CA证书颁发机构 # 子CA证书颁发机构颁发证书 [root@centos6 CA]$openssl ca -in /etc/pki/CA/app.csr -out /etc/pki/CA/certs/app.crt -days 365 #将生成的证书传递给申请者 [root@centos6 CA]$scp /etc/pki/CA/certs/app.crt 172.18.253.58:/etc/pki/CA/certs/这样,正常的证书颁发流程就算是完成了。将我们生成的根证书,子CA证书以及普通用户证书导出到Windows系统中,并安装,然后我们就可以看到,整个证书路径了。如下图所示。