今天小编讲讲怎么搭建CA,开讲之前先说一一下什么是CA,
发送数据过程:
发送方: 计算数据特征值----> 使用私钥加密特征值 ---> 随机生成密码对称加密整个数据 ---> 使用接受方公钥加密密码
接收方: 使用私钥解密密码 ----> 解密整个数据 ----> 使用公钥验证身份 ----> 比较数据特征值
那么问题来了,谁来管理公钥,任何在互联网上传播的数据都不安全,更不用说传递公钥,它如果被篡改,那就无法验证身份,所以不可能由用户自己颁发公钥。
这个时候需要有一个具有公信力的中间机构来做这份工作,那就是CA,由此引发了两个概念:
CA : 证书颁发机构
PKI : 公钥基础设施,公钥基础构架
证书: 里面存放了用户的各种信息,最核心的部分就是公钥
但是还有一个问题,谁来给CA颁发公钥,解决方法是,CA自己给自己颁发公钥。。。
下面小编来讲讲如何自己搭建CA
- 先看看有没有openssl工具,没的话就装一个
2.创建所需要的文件
touch /etc/pki/CA/index.txt 生成证书索引数据库文件
echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号
3.CA自签证书
3.1生成私钥
cd /etc/pki/CA/
(umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
3.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: 证书的保存路径
4、颁发证书
A 在需要使用证书的主机生成证书请求给web服务器生成私钥
(umask 066; openssl genrsa -out /etc/pki/tls/private/test.key 2048)
生成证书申请文件
openssl req -new -key /etc/pki/tls/private/test.key -days 365 -out etc/pki/tls/test.csr
B 将证书请求文件传输给CA
C CA签署证书,并将证书颁发给请求者
openssl ca -in /tmp/test.csr –out /etc/pki/CA/certs/test.crt -days 365
注意:默认国家,省,公司名称三项必须和CA一致
D 查看证书中的信息:
openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|issuer|subject|serial|dates
openssl ca -status SERIAL 查看指定编号的证书状态
5、吊销证书
A 在客户端获取要吊销的证书的serial
openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
B 在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,
吊销证书
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
C 指定第一个吊销证书的编号
注意:第一次更新证书吊销列表前,才需要执行
echo 01 > /etc/pki/CA/crlnumber
D 更新证书吊销列表
openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem
查看crl文件:
openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text
按着步骤一步一来,就好了,截图是根据文字一步一步做的。