创建CA和申请证书
创建私有CA:
首先在CA服务器端创建CA。
先去看openssl的配置文件: /etc/pki/tls/openssl.cnf
一般我们不会去更改这个配置文件,但是要去看一下。我们是根据这个文件创建的CA.
这个文件里是openssl的配置文件,我们打开后只观察与CA有关的文件。
在文本中可以看出一个主机中可以有多个CA,并且指定出默认CA为CA_default。
三种策略要求:
match匹配
supplied支持
optional可选
匹配指要求申请填写的信息跟CA设置信息必须一致, 支持指必须填写这项申请信息, 可选指可有可无。
要想改变策略可以直接更改该文件。
前面文档了解之后我们就开始创建了。
首先我们先创建一个私钥。
生成私钥
(umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
我们可以查看一下目录结构看看是否生成秘钥文件。
tree /etc/pki/CA/
创建好私钥后我们要自签名证书
CA自签证书
创建CA和申请证书,生成自签名证书
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 /PATH/TO/SOMECERTFILE: 证书的保存路径
我们可以查看一下生成的证书
openssl x509 -in /etc/pki/CA/cacert.pem -noout -text
文件里显示的证书的详尽信息,颁发者,有效时间什么的。
申请证书
CA自签名做好之后要用客户端去申请证书
申请证书前,客户端也要先生成私钥文件。
(umask 066;openssl genrsa -out /app/RA/service.key 4096)
然后生成证书申请文件
openssl req -new -key /app/RA/service.key -out /app/RA/service.csr
将证书请求文件传输给CA
scp /app/RA/service.csr 172.16.251.18:/etc/pki/CA/
为了方便管理,在CA端的/etc/pki/CA下创建msc文件并把文件请求放到文件夹里
CA签署证书,并将证书颁发给请求者
openssl ca -in /etc/pki/CA/csr/service.csr -out /etc/pki/CA/certs/service.crt -days 365
这里报错是因为服务器创建CA的时候没有创建数据可文件。所以这一要创建一下这个文件。
touch /etc/pki/CA/index.txt
但是只有这个文件还是不行的,还序号文件没有开始序号。所以这也要创建。
并且序号只能是两位,如果不是就会报错。
echo 01> /etc/pki/CA/serial
当然这两步也在创建CA是就做是最好的。
然后重新颁发证书试试。
注意:默认国家,省,公司名称三项必须和CA一致
同意之后我们可以查看一下我们刚创建的数据库有变化没。
这是就已经有新文件产生。数据库发生变化。
到此申请证书结束。
我们可以查看证书的信息
openssl x509 -in certs/service.crt -noout -text
吊销证书
在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,吊销证书:
openssl ca -revoke newcerts/91.pem
然后擦汗一下数据库
可以看见证书前面状态是R ,代表已经吊销。
然后指定第一个吊销证书的编号
注意:第一次更新证书吊销列表前,才需要执行
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