博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Centos7.3创建CA和申请证书

openssl 的配置文件:/etc/pki/tls/openssl.cnf

重要参数配置路径

dir   = /etc/pki/CA                # Where everything is kept

certs   = /etc/pki/CA/certs            # Where the issued certs are kept

database    = /etc/pki/CA/index.txt        # database index file.

new_certs_dir    = /etc/pki/CA/newcerts         # default place for new certs.

certificate   = /etc/pki/CA/cacert.pem       # The CA certificate

serial    = /etc/pki/CA/serial           # The current serial number

private_key    = /etc/pki/CA/private/cakey.pem   # The private key

 

三种策略:匹配、支持和可选

匹配指要求申请填写的信息跟CA设置信息必须一致;支持指必须填写这项申请信息;可选指可有可无

1、创建所需要的文件

touch /etc/pki/CA/index.txt  生成证书索引数据库文件

echo 01 > /etc/pki/CA/serial  指定第一个颁发证书的序列号,必须是两位十六进制数,99之后是9A

2、CA自签证书

生成私钥

cd /etc/pki/CA/

(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

生成自签名证书

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: 证书的保存路径

提示输入国家,省,市,公司名称,部门名称,CA主机名(颁发者名称)

 

linux下查看生成的自签名证书

openssl x509 -in /etc/pki/CA/cacert.pem -noout -text

Windows下查看生成的自签名证书

需要更改上述文件名后缀为.cer即可查看

 

3、颁发证书

(1)在需要使用证书的主机生成证书请求

给web服务器生成私钥

(umask 066; openssl genrsa -out /app/service.key 2048)

生成证书申请文件

openssl req -new -key /app/service.key -out /app/service.csr

同样提示输入国家,省,市等信息。注意:国家,省,公司名称三项必须和CA一致。主机名称必须和网站域名相同,如www.centos73.com。或者使用泛域名,即*.centos73.com,匹配所有。

(2)将证书请求文件传输给CA

scp /app/service.csr 192.168.10.15:/etc/pki/CA/csr/

(3)CA签署证书,并将证书颁发给请求者

openssl ca -in /etc/pki/CA/csr/service.csr –out /etc/pki/CA/certs/service.crt -days 365

生成certs/service.crt和newcerts/xx.pem文件,两个文件相同。

(4)查看证书中的信息

openssl x509 -in certs/service.crt -noout -text|issuer|subject|serial|dates

cat serial

cat index.txt  //V表示当前证书的状态正常

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

cat index.txt.attr  //yes表示subjects信息必须是唯一的,不能重复申请

 

4、吊销证书

(1)在客户端获取要吊销的证书的serial

openssl x509 -in /etc/pki/CA/cacert.pem -noout -serial -subject

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

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

cat index.txt  //R表示证书已经失效

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

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

echo 01 > /etc/pki/CA/crlnumber

(4)更新证书吊销列表

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

linux下查看crl文件:

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

Windows下查看吊销列表文件,需更改文件后缀为.crl