openssl生成多级证书

[TOC]

参考

环境

Centos7.6

初始化

1
2
touch /etc/pki/CA/index.txt
echo 01 > /etc/pki/CA/serial

制作证书

生成RootCA证书(Common Name填RootCA)

1
2
3
4
5
6
7
8
#生成私钥
openssl genrsa -out rootca.key 2048
#可以用openssl命令查看私钥的明细
openssl rsa -in rootca.key -noout -text
#生成证书
openssl req -new -x509 -days 3650 -key rootca.key -out rootca.crt -subj "/C=CN/ST=JS/L=NJ/O=Huawei/OU=Dev/CN=RootCA/emailAddress=rootca@world.com"
#查看生成的证书
openssl x509 -in rootca.crt -noout -text

生成二级CA证书(Common Name填SecondCA)

1
2
3
4
5
6
7
8
#生成私钥
openssl genrsa -out secondca.key 2048
#生成证书签名请求
openssl req -new -key secondca.key -out secondca.csr -subj "/C=CN/ST=JS/L=NJ/O=Huawei/OU=Dev/CN=SecondCA/emailAddress=secondca@world.com"
#通过openssl命令查看证书请求文件的明细
openssl req -noout -text -in secondca.csr
#生成证书
openssl ca -extensions v3_ca -in secondca.csr -out secondca.crt -cert rootca.crt -keyfile rootca.key -days 3650

生成服务器证书(Common Name填真实域名)

1
2
3
4
5
6
#生成私钥
openssl genrsa -out server.key 2048
#生成证书签名请求
openssl req -new -key serve.key -out server.csr -subj "/C=CN/ST=JS/L=NJ/O=Huawei/OU=Dev/CN=test.com/emailAddress=test@world.com"
#生成证书
openssl ca -in server.csr -out server.crt -cert secondca.crt -keyfile secondca.key -days 3650

P.S.

  • 指定证书内容

    1
    -subj /C=CN/ST=Guangdong/L=Shenzhen/O=PAX/OU=Common Software/CN=Server CA/emailAddress=qiaojx@paxsz.com
  • 去掉key加密的输入提示

    1
    2
    去掉 -des3
    openssl genrsa -des3 -out server.key 2048
  • crt转pem格式

    1
    openssl x509 -in mycert.crt -out mycert.pem -outform PEM

吊销证书

一般由于用户私钥泄露等情况才需要吊销一个未过期的证书。(当然我们用本测试CA时其时很少用到该命令,除非专门用于测试吊销证书的情况)
假设需要被吊销的证书文件为client.pem,则执行以下命令吊销证书:

1
2
echo 00 > /etc/pki/CA/crlnumber
openssl ca -revoke client.pem -cert RootCA.pem -keyfile RootCA.key -config /etc/pki/tls/openssl.cnf

生成证书吊销列表文件(CRL)
准备公开被吊销的证书列表时,可以生成证书吊销列表(CRL),执行命令如下:

1
openssl ca -gencrl -out client.crl -cert RootCA.pem -keyfile RootCA.key -config /etc/pki/tls/openssl.cnf

还可以添加-crldays和-crlhours参数来说明下一个吊销列表将在多少天后(或多少小时候)发布。

可以用以下命令检查client.crl的内容:

1
openssl crl -in client.crl -text -noout

使用X509生成pem格式证书

生成CA证书

1
2
openssl genrsa -out rootca.key 2048
openssl req -new -x509 -days 365 -key rootca.key -out rootca.crt -subj "/C=CN/ST=BJ/L=BJ/O=HD/OU=dev/CN=rootca/emailAddress=rootca@world.com"

生成服务器证书请求

1
2
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=BJ/L=BJ/O=HD/OU=dev/CN=test.com/emailAddress=test@world.com"

签署证书

1
2
openssl x509 -req -days 3650 -in server.csr -CA rootca.crt -CAkey rootca.key -CAcreateserial -out server.pem
openssl x509 -in server.pem -noout -text
--------------------本文结束,感谢您的阅读--------------------