网站私有CA证书制作

          所谓的网站安全证书 是通过在客户端浏览器和Web服务器之间建立一条SSL安全通道保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否真实可靠。

大体步骤:

1)签名发送方(甲)对需要发送的明文使用杂凑算法,计算摘要;
2)甲使用其签名私钥对摘要进行加密,得到密文;
3)甲将密文、明文和签名证书发送给签名验证方(乙);
4)乙方验证签名证书的有效性,并一方面将甲发送的密文通过甲的签名证书解密得到摘要,另一方面将明文相同的杂凑算法计算出摘要;
5)乙对比两个摘要,如果相同,服务器证书则可以确认明文在传输过程中没有被更改,并且信息是由证书所申明身份的实体发送的。
签名私钥配合杂凑算法的使用,可以完成服务器/网站安全证书功能。而对服务器/网站安全证书和签名发送方的身份的确认,就需要通过CA对其身份认证进行验证。
 

创建私有CA:

openssl的配置文件:/etc/pki/tls/openssl.cnf
三种策略:匹配、支持和可选
匹配指要求申请填写的信息跟CA设置信息必须一致,支持指必
须填写这项申请信息,可选指可有可无

1、创建所需要的文件
touch /etc/pki/CA/index.txt 生成证书索引数据库文件
echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号                                                     #此处数字必须为两位数
2、 CA自签证书
生成私钥
cd /etc/pki/CA/                                                                                                                         #路径很重要,默认的按照配置文件里的来
(umask 066; openssl genrsa -out
/etc/pki/CA/private/cakey.pem 2048)

3     创建CA

openssl req -new -x509 /etc/pki/CA/private/cakey.pem -days 7300 /etc/pki/CA/cacert.pem     #路径很重要,默认的按照配置文件里的来

查看证书命令 openssl x509 -in cakey.pem -noout -text  #如果不在/etc/pki/CA/private目录则路径cakey.pem文件要换成局对路径。

客户端上申请证书步骤:

1   (umask 066; openssl genrsa -out /app/service.key -des 1024)           #因为客户端生成私钥没有要求所以一般自由决定放的位置。

2    openssl req -new -key /app/service.key -out /app/service.csr             #客户端申请证书


Country Name (2 letter code) [XX]:CN             #默认必填,必须和根证书内容一致
State or Province Name (full name) []:HN         #默认必填,必须和根证书内容一致
Locality Name (eg, city) [Default City]:ZHENGZHOU
Organization Name (eg, company) [Default Company Ltd]:chykj.com         #默认必填,必须和根证书内容一致
Organizational Unit Name (eg, section) []:amoukj
Common Name (eg, your name or your server's hostname) []:chykj.com      #默认必填,必须和根证书内容一致
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:amoukj                                           #可选填
An optional company name []:chykj.com                                    #可选填

(1,2,4,6项要求和根证书资料保持一致,其他选填即可)

3 上传客户端生成的请求证书到根证书服务器

openssl ca -in /etc/pki/CA/csr/service.csr -out /etc/pki/CA/certs/service.crt -days 365  #输出的格式一般是crt或cer

三  证书的状态查询及如何吊销

 1  查看证书中的信息

openssl x509 -in /PATH/FROM/CERT_FILE -noout -text |issuer|subject|serial|dates

openssl ca -status SERIAL  查看指定编号的证书状态

2   在客户端获取要吊销的证书的serial

openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject

 3   指定第一个吊销证书的编号

注意:第一次更新证书吊销列表前,才需要执行

echo 01 > /etc/pki/CA/crlnumber

     更新证书吊销列表

openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem

     查看crl文件:

openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text

4   在CA上,根据客户提交的serial与subject信息,对比校验是否与index.txt文件中的信息一致,吊销证书

openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

备注:在etc/pki/CA目录里有个index.txt.attr文件  unique_subject = yes  #即为证书内容的唯一性,是否允许相同内容的证书同时存在。

原文地址:https://www.cnblogs.com/chenyongmou/p/7500951.html