服務端根CA創建證書
進入固定目錄,創建所需要的文件
cd /etc/pki/CA/
touch /etc/pki/CA/index.txt 生成證書索引數據庫文件
echo 01 > /etc/pki/CA/serial 指定第一個頒發證書的序列號
生成秘鑰
(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem -des3 2048)
利用私鑰生成自簽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:指定證書的有效期限
-out : 指定證書的保存路徑
根據默認策略填寫的申請信息(國家,省,公司等)
有時候需要將私鑰文件和證書文件合并到一個文件,直接重定向到一個文件即可
查看生成的自簽CA證書
生成的證書要放在目錄/etc/pki/CA/目錄中,而不是子目錄,否則后面為子CA簽署頒發證書時,會找不到自己的證書。例如:
openssl x509 -in /etc/pki/CA/cacert.pem -noout -text
服務端子CA創建申請證書
進入固定目錄,準備所需文件
cd /etc/pki/CA
touch index.txt
echo 01 > serial
生成秘鑰
(umask 066;openssl genrsa -out ./private/subcakey.pem -des 1024)
利用秘鑰生成CA申請
openssl req -new -key ./private/subcakey.pem -out ./certs/subca.csr
將生成的證書申請上交給根CA審核簽署
scp ./certs/subca.csr root@ROOTCAIP:/etc/pki/CA/
服務端根CA進行審核并頒發子CA的證書
查看需要審核和頒發的證書
簽署證書
openssl ca -in /path/service.csr –out /etc/pki/CA/certs/service.crt -days 3650
將證書頒發給子CA
scp ./newcerts/01.pem root@SUBCAIP:/etc/pki/CA
注意事項:
(1)會生成兩個之前設定的編號證書,在certs目錄中是.crt后綴,文件名是申請名;在newcerts目錄中是.pem后綴,文件名是編號。二者內容相同。
(2)如果這時候沒有準備創建證書需要的數據庫索引文件index.txt和證書編號文件serial,會報錯提示,補上即可。
(3)簽署證書后,系統會自動備份簽署的上一個舊證書,后綴為index.txt.old如果沒有舊證書文件為空;在index.txt保存的是所有的證書信息。也會生成serial的備份。
(4)產生一個新文件index.txt.attr,這個文件決定能否為一個證書申請頒發多個證書,默認yes不允許;如果允許,可以修改其文件內容為unique_subject = no。
客戶端申請CA證書
在需要使用證書的主機生成私鑰
(umask 066; openssl genrsa -out /etc/pki/tls/private/client.key -des 2048)
利用私鑰生成證書申請文件
openssl req -new -key /etc/pki/tls/private/client.key -out /etc/pki/tls/app.csr -days 365
填寫的申請信息國家,省,公司名稱三項必須和CA一致
申請時間可以不寫,因為時間是由服務端指定的
將證書請求文件傳輸給子CA
scp /etc/pki/tls/app.csr SUBCAIP:/etc/pki/CA
再為其他服務申請證書
(1)只需要直接申請,不需要再創建私鑰
(2)填寫的申請信息國家,省,公司名稱三項必須和CA一致
(3)申請時間可以不寫,因為時間是由服務端指定的
服務端子CA審核頒發證書
簽署證書
openssl ca -in /path/service.csr –out /etc/pki/CA/certs/service.crt -days 365
頒發證書
scp /etc/pki/CA/newcerts/01.pem root@CLIENTIP:/etc/pki/CA/
查看某個證書信息
penssl x509 -in /PATH/FROM/CERT_FILE -noout -text
openssl ca -status SERIAL 查看指定編號的證書狀態,這個是利用數據庫索引文件index.txt實現的。
—-終—-
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/86907
一篇不錯的記錄文,推薦給大家了!