A与B双方通信,需要通过签证机构CA颁发证书,才可以互相信任,从而安全的进行数据传输。想要获取证书,除了付费购买认证机构的证书,还可以自签名获取证书。
openssl命令可以搭建CA,实现自签名证书。下面以三台主机为例,模拟根CA、子CA的搭建,以及客户端申请证书的过程。
一、搭建根CA
/etc/pki/tls/openssl.cnf文件是openssl的配置文件,其中规定了CA证书的存放目录、工作目录、证书编号、策略等信息,搭建CA需要以配置文件为参考。
1.创建文件:
a.生成证书索引数据库文件
touch /etc/pki/CA/index.txt
b.指定第一个颁发证书的序列号
echo 01> /etc/pki/CA/serial
2.CA自签证书(第一个CA自己为自己签名)
生成私钥:(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
由于私钥文件很重要,需要设置权限,使其他人无法查看,genrsa代表RSA算法,CA的私钥存放目录是配置文件中规定的,2048代表指定私钥位数。
3.生成自签名证书:
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacer.pem
其中,new表示新证书签署请求;x509表示生成自签名证书;key表示用到的私钥文件;days表示证书有效期;out后面跟证书的保存路径。运行命令行之后,会交互式填写信息,由于配置文件中默认的策略是policy_match,所以CA与客户端申请时填写的国家,省,公司名必须匹配,其他信息像通用名可以不一样,但必须填写。
二、搭建子CA
1.创建文件:
a.生成证书索引数据库文件
touch /etc/pki/CA/index.txt
b.指定第一个颁发证书的序列号
echo 02> /etc/pki/CA/serial
2.生成私钥:
(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
3.生成证书申请文件:
openssl req -new -key /etc/pki/CA/private/cakey.pem -out subca.csr
根据默认策略,所填写的国家,省,公司必须与根CA一致
4.将文件复制到根CA中:
scp subca.csr 192.168.25.129 :/etc/pki/CA (以 192.168.25.129主机为根CA)
5.颁发证书:
openssl ca -in subca.csr -out /etc/pki/CA/certs/subca.crt -days 300
6.将文件传给申请者:
scp certs/subca.crt 192.168.25.6 : /etc/pki/CA/cacert.pem (以192.168.25.6主机为子CA)
这样,子CA就搭建成功了。
三、客户端申请证书
1.生成私钥:
(umask 066;openssl genrsa -out /etc/pki/tls/private/app.key 2048)
2.生成证书申请文件:
openssl req -new -key /etc/pki/tls/private/app.key -out /etc/pki/tls/app.csr
交互式填写国家,州,公司要与子CA信息一致。
3. 将文件复制到子CA中:
scp app.csr 192.168.25.6 : /etc/pki/CA
4.颁发证书:
openssl ca -in app.csr -out /etc/pki/CA/certs/app.crt -days 100
5.将证书文件传送给申请者:
scp certs/app.crt 192.168.25.6 : /etc/pki/tls/certs (以192.168.25.6主机为客户端)
最后,还可以查看证书信息:
openssl x509 -in app.crt -noout -text|issuer|subject|dates
其中,text代表全部信息,issuer代表颁发者,subject代表主题,dates代表有效期
在同一客户端可以为其他程序申请证书,无需再生成私钥,只要重新申请证书即可。默认一个证书申请文件不能颁发两个证书,这与index.txt.attr文件有关,只需将文件中unique_subject的值由yes改为no即可。
当证书过期或者不受信任时,可以吊销证书:
openssl ca -revoke /etc/pki/CA/newcerts/02.pem (以02编号证书为例)
指定第一个吊销证书的编号:
echo 01 > /etc/pki/CA/crlnumber
更新证书吊销列表:
openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem
文件 /etc/pki/CA/crlnumber中存放的则是下一个吊销证书的编号。
至此,CA的搭建以及证书的申请过程就结束了。
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/86826