三個組件:
openssl: 多用途的命令行工具;
libcrypto: 加密解密庫;
libssl:ssl協議的實現;
PKI:Public Key Infrastructure
CA
RA
CRL
證書存取庫
建立私有CA:
OpenCA
openssl
證書申請及簽署步驟:
1、生成申請請求;
2、RA核驗;
3、CA簽署;
4、獲取證書;
創建私有CA:
openssl的配置文件:/etc/pki/tls/openssl.cnf
(1) 創建所需要的文件
[root@localhost CA]# touch index.txt
[root@localhost CA]# echo 01 > serial
(2) CA自簽證書
# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
[root@localhost CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
# openssl req -new -x509 -key /etc/pki/CA/private/cakey.epm -days 7300 -out /etc/pki/CA/cacert.pem
[root@localhost CA]# openssl req -new -x509 -key private/cakey.pem -days 7300 -out cacert.pem
例三:已創建CA證書
[root@localhost CA]# ll total 8 -rw-r--r--. 1 root root 1407 Jun 15 17:33 cacert.pem
-new: 生成新證書簽署請求;
-x509: 專用于CA生成自簽證書;
-key: 生成請求時用到的私鑰文件;
-days n:證書的有效期限;
-out /PATH/TO/SOMECERTFILE: 證書的保存路徑;
(3) 發證
(a) 用到證書的主機生成證書請求
[root@localhost ssl]# (umask 077; openssl genrsa -out httpd.key 2048)
# openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr
[root@localhost ssl]# openssl req -new -key httpd.key -days 365 -out httpd.csr
(b) 把請求文件傳輸給CA;
[root@localhost ssl]# scp httpd.csr root@192.168.21.137:/tmp/ Password: httpd.csr 100% 1058 1.0KB/s 00:0
(c) CA簽署證書,并將證書發還給請求者;
# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
查看證書中的信息:
openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|-subject|-serial
(4) 吊銷證書
(a) 客戶端獲取要吊銷的證書的serial
# openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
(b) CA
先根據客戶提交的serial與subject信息,對比檢驗是否與index.txt文件中的信息一致;
吊銷證書:
# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
(c) 生成吊銷證書的編號(第一次吊銷一個證書)
# echo 01 > /etc/pki/CA/crlnumber
(d) 更新證書吊銷列表
# openssl ca -gencrl -out thisca.crl
查看crl文件:
# openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text
原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/78337