在實驗開始之前先了解一下一下內容:
- x509證書 :一般會用到三類文,key,csr,crt。
- CA :簽證機構(Certificate Authority)
- CRL:證書吊銷列表
- key: 是私用密鑰openssl格,通常是rsa算法。
- csr :是證書請求文件,用于申請證書。在制作csr文件的時,必須使用自己的私 鑰來簽署申,還可以設定一個密鑰。
- crt:是CA認證后的證書文,(windows下面的,其實是crt),簽署人用自己的key給你簽署的憑證。
此實驗可以先設一個場景,假設centos6是web服務器,需要對外提供https服務。若要搭建網絡站點:https://www.magedu.com,此時centos6需要有證書。把centos7當做CA,centos6向centos7申請證書,centos7為其頒發證書。在頒發證書的過程中,centos6是客戶端,centos7是服務器端
下面我們來創建CA并申請證書
一:在centos7上創建私有CA
1:創建所需要的文件
生成證書索引數據庫文件
touch /etc/pki/CA/index.txt
指定第一個頒發證書的序列號
echo 01 > /etc/pki/CA/serial
2:CA 自簽證書
生成私鑰 cd /etc/pki/CA/
(umask 066; openssl genrsa -out/etc/pki/CA/private/cakey.pem 2048)
3:生成自簽名證書
openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 3560 -out
/etc/pki/CA/cacert.pem
- -new: 生成新證書簽署請求
- -x509: 專用于CA 生成自簽證書
- -key: 生成請求時用到的私鑰文件
- -days n :證書的有效期限
- -out / PATH/TO/SOMECERTFILE : 證書的保存路徑
在填寫信息是根據/etc/pki/tls/openssl.cnf 中的配置要求,這三項必須匹配、一致
查看一下剛剛輸入的信息
openssl x509 -in /etc/pki/CA/cacert.pem -noout -text
查看一下
/etc/pki/CA/
目錄結構Alt text
現在也可以把證書傳到Windows上看一下 sz /etc/pki/CA/cacert.pem
在Windows上接收并更改后綴名為 .cer
Alt text
二:在centos6上頒發證書
1:在需要使用證書的主機生成證書請求。
給web服務器生成私鑰
(umask 066; openssl genrsa -out /etc/pki/tls/private/service.key 2048)
生成證書申請文件
openssl req -new -key /etc/pki/tls/private/service.key -days 365 -out
/etc/pki/tls/service.csr
2:將證書請求文件傳輸給CA
scp /etc/pki/tls/service.csr 172.16.251.13:/etc/pki/CA/
- 172.16.251.13:centos7 的IP
-/etc/pki/tls/
:指定路徑
3:在centos7上為CA 簽署證書,并將證書頒發給請求者(centos6)
openssl ca -in /etc/pki/tls/service.csr –out /etc/pki/CA/certs/service.crt -days
365
注意:默認國家,省,公司名稱三項必須和CA一致
4:在centos7中 查看 證書中的信息:
openssl x509 -in /etc/pki/CA/certs/service.crt -noout -text
查看 指定 編號的證書狀態
openssl ca -status serial
此時的目錄結構為
三:吊銷證書
1:獲取要吊銷的證書的serial(centos7)
openssl x509 -in / PATH/FROM/CERT_FILE -noout -serial -subject
2:吊銷證書(centos7)
openssl ca -revoke /etc/pki/CA/newcerts/ SERIAL .pem
在CA 上,根據客戶提交的serial 與subject 信息,對比檢驗是否與index.txt 文件中的信息一致
3:定第一個吊銷 證書的編號
注意:第一次更新證書吊銷列表前,才需要 執行
echo 01 > /etc/pki/CA/crlnumber
4:更新證書吊銷列表
openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem
查看crl 文件:
openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text
步驟梳理:
查看/etc/pki/tls/openssl.cnf
配置文件查看的對應目錄
1 、創建所需要的文件
touch /etc/pki/CA/index.txt
生成證書索引數據庫文件
echo 01 > /etc/pki/CA/serial
指定第一個頒發證書的序列號
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 / PATH/TO/SOMECERTFILE : 證書的保存路徑
3 、 頒發證書
? A 在需要使用證書的主機生成證書請求給web 服務器
生成私鑰
(umask 066; openssl genrsa -out /etc/pki/tls/private/test.key 2048)
生成證書申請文件
openssl req -new -key /etc/pki/tls/private/test.key-days 365 -out
/etc/pki/tls/test.csr
? B 將證書請求文件傳輸給CA
? C CA 簽署證書,并將證書頒發給請求者
openssl ca -in /tmp/test.csr –out/etc/pki/CA/certs/test.crt -days 365
注意:默認國家,省,公司名稱三項必須和CA一致
? D 查看 證書中的信息:
openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|issuer|subject|serial|dates
openssl ca -status 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 /etc/pki/CA/crl/crl.pem
查看crl 文件:
openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text