服务端根CA创建证书
进入固定目录,创建所需要的文件
cd /etc/pki/CA/
touch /etc/pki/CA/index.txt 生成证书索引数据库文件
echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号
生成秘钥
(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem -des3 2048)
利用私钥生成自签CA证书
openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem
-new: 生成新证书签署请求
-x509: 专用于CA生成自签证书,不加表示申请
-key :指定生成请求时用到的私钥文件的路径
-days:指定证书的有效期限
-out : 指定证书的保存路径
根据默认策略填写的申请信息(国家,省,公司等)
有时候需要将私钥文件和证书文件合并到一个文件,直接重定向到一个文件即可
查看生成的自签CA证书
生成的证书要放在目录/etc/pki/CA/目录中,而不是子目录,否则后面为子CA签署颁发证书时,会找不到自己的证书。例如:
openssl x509 -in /etc/pki/CA/cacert.pem -noout -text
服务端子CA创建申请证书
进入固定目录,准备所需文件
cd /etc/pki/CA
touch index.txt
echo 01 > serial
生成秘钥
(umask 066;openssl genrsa -out ./private/subcakey.pem -des 1024)
利用秘钥生成CA申请
openssl req -new -key ./private/subcakey.pem -out ./certs/subca.csr
将生成的证书申请上交给根CA审核签署
scp ./certs/subca.csr root@ROOTCAIP:/etc/pki/CA/
服务端根CA进行审核并颁发子CA的证书
查看需要审核和颁发的证书
签署证书
openssl ca -in /path/service.csr –out /etc/pki/CA/certs/service.crt -days 3650
将证书颁发给子CA
scp ./newcerts/01.pem root@SUBCAIP:/etc/pki/CA
注意事项:
(1)会生成两个之前设定的编号证书,在certs目录中是.crt后缀,文件名是申请名;在newcerts目录中是.pem后缀,文件名是编号。二者内容相同。
(2)如果这时候没有准备创建证书需要的数据库索引文件index.txt和证书编号文件serial,会报错提示,补上即可。
(3)签署证书后,系统会自动备份签署的上一个旧证书,后缀为index.txt.old如果没有旧证书文件为空;在index.txt保存的是所有的证书信息。也会生成serial的备份。
(4)产生一个新文件index.txt.attr,这个文件决定能否为一个证书申请颁发多个证书,默认yes不允许;如果允许,可以修改其文件内容为unique_subject = no。
客户端申请CA证书
在需要使用证书的主机生成私钥
(umask 066; openssl genrsa -out /etc/pki/tls/private/client.key -des 2048)
利用私钥生成证书申请文件
openssl req -new -key /etc/pki/tls/private/client.key -out /etc/pki/tls/app.csr -days 365
填写的申请信息国家,省,公司名称三项必须和CA一致
申请时间可以不写,因为时间是由服务端指定的
将证书请求文件传输给子CA
scp /etc/pki/tls/app.csr SUBCAIP:/etc/pki/CA
再为其他服务申请证书
(1)只需要直接申请,不需要再创建私钥
(2)填写的申请信息国家,省,公司名称三项必须和CA一致
(3)申请时间可以不写,因为时间是由服务端指定的
服务端子CA审核颁发证书
签署证书
openssl ca -in /path/service.csr –out /etc/pki/CA/certs/service.crt -days 365
颁发证书
scp /etc/pki/CA/newcerts/01.pem root@CLIENTIP:/etc/pki/CA/
查看某个证书信息
penssl x509 -in /PATH/FROM/CERT_FILE -noout -text
openssl ca -status SERIAL 查看指定编号的证书状态,这个是利用数据库索引文件index.txt实现的。
—-终—-
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/86907
评论列表(1条)
一篇不错的记录文,推荐给大家了!