linux创建私有ca、发证、吊销证书
- 操作环境:centos 6、rhel 6
- 操作虚拟机:vmware
本实验基于openssl实现,ssl是secure sockets layer(安全套接层协议)的缩写,可以在internet上提供秘密性传输。
实验方法:
- 以centos 6系统作为ca机构,实行签发证书等操作
- 以rhel 6系统作为申请证书客户机
操作流程:
- 让centos 6自签证书成为ca发证机构
- 让rhel 6客户机生成证书申请请求并发送到ca
- 由ca检查此申请是否正规,然后签署证书并送回请求者
- 吊销证书
openssl配置文件:/etc/pki/tls/openssl.conf
实验步骤:
1、首先要确保/etc/pki/ca下有certs、crl、newcerts、private四个目录,然后再创建所需要的文件

2、centos 6若想成为ca,它自己也得有证书,所以ca自签证书
(1)先生成一个秘钥对,保存在指定目录下,文件名为cakey.pem(必须是这个名字,因为是配置文件中定义的)
(umask 077; openssl genrsa -out private/cakey.pem 2048)

(2)生成证书请求,并自签
openssl req -new -x509 -key /etc/pki/ca/private/cakey.pem -days 7300 -out /etc/pki/ca/cacert.pem -new:生成新证书签署请求 -x509:专用于ca生成自签证书 -key:生成请求时用到的私钥文件 -days n:证书的有效期限 -out /path/to/somecertfile:证书的保存路径 要输入国家名、省份名、地区(市)名、组织或公司名、部门名、服务器名、email地址

3、客户机向ca申请认证,ca发证
(1)rhel 客户机将用到的证书生成证书请求
假设客户机要进行https的ssl服务,他就应该有自己的私钥和证书

创建一个ssl目录,是用来存放私钥的,由于是私有ca,所以帮客户机去签ca的机构和客户机应该在同一个地区、机构。

(2)客户机把请求文件传输给ca
- 上面已经生成了httpd.csr私钥,把文件发送给ca

(3)ca检查无误后签署证书,并将证书发还给客户机
检查证书

可以看到客户机上的文件已经上传到centos服务器的/tmp临时文件目录中了,由于是自己做的实验,所以就不检查了,直接签署证书了。**

给签365天的证书,然后会显示出来一系列信息让检查一下,最后问信息是否正确:y;然后会提示有一个证书要签署,是否签证:y

可以看一下
/etc/pki/ca/目录下的index.txt文件,会发现有一个证书已经签署成功了。
![]()
刚生成的证书可以在/etc/pki/ca/newcerts/目录下查看到

查看一下文件中的信息:

ps: 本来在签署证书的时候应该把签署过的证书放在/etc/pki/ca/certs/目录下,然后把这个文件名改为这个证书所属机构的名字,以便以后查找使用,在这里说一下。但是本实验中没有这样做!
然后把证书发还给客户机


4、吊销证书(不太重要,所以就不详细写了)
(1)客户端获取要吊销的证书的serial
openssl x509 -in /path/from/cert_file -noout -serial -subject
(2)ca
先根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致; 吊销证书: openssl ca -revoke /etc/pki/ca/newcerts/serial.pem
(3)生成吊销证书的编号(第一次吊销一个证书)
echo 01 > /etc/pki/ca/crlnumber
(4)更新证书吊销列表
openssl ca -gencrl -out thisca.crl 查看crl文件: openssl crl -in /path/from/crl_file.crl -noout -text
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论