一、生成数字证书
1.创建根证书私钥(ca.key)
OpenSSL> genrsa -out ca.key 1024
2.创建根证书请求文件(root-req.csr)
OpenSSL> req -new-out root-req.csr -key ca.key -keyform PEM
3.自签根证书(ca.cer)
OpenSSL> x509 -req -extfile /etc/pki/tls/openssl.cnf -extensions v3_ca -in root-req.csr -out ca.cer -signkey ca.key -CAcreateserial -days 3650
4.生成客户端key(client-key.key)
OpenSSL> genrsa -out client-key.key 1024
5.生成客户端请求文件(client-req.csr)
OpenSSL> req -new -out client-req.csr -key client-key.key
6.生成客户端证书,使用根证书签名(client-cert.cer)
OpenSSL> x509 -req -extfile /etc/pki/tls/openssl.cnf -extensions v3_req -in client-req.csr -out client-cert.cer -signkey client-key.key -CA ca.cer -CAkey ca.key -CAcreateserial -days 3650
OpenSSL> x509 -in client-cert.cer -text -noout
二、吊销证书(作废证书)
echo 01 > /etc/pki/CA/crlnumber
一般由于用户私钥泄露等情况才需要吊销一个未过期的证书。(当然我们用本测试CA时其时很少用到该命令,除非专门用于测试吊销证书的情况)
假设需要被吊销的证书文件为second.cer,则执行以下命令吊销证书:
openssl ca -revoke second.cer
#openssl ca -revoke second.cer -cert RootCA.pem -keyfile RootCA.key -config /etc/pki/tls/openssl.cnf
三、生成证书吊销列表文件(CRL)
准备公开被吊销的证书列表时,可以生成证书吊销列表(CRL),执行命令如下:
openssl ca -gencrl -out my1.crl -cert root.cer -keyfile root.key -config /etc/pki/tls/openssl.cnf
还可以添加-crldays和-crlhours参数来说明下一个吊销列表将在多少天后(或多少小时候)发布。
检查编码
openssl crl -outform der -in my1.crl -out my2.crl
可以用以下命令检查my2.crl的内容:
openssl crl -in my2.crl -text -noout