网站私有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 #即为证书内容的唯一性,是否允许相同内容的证书同时存在。