今天小編講講怎麼搭建CA,開講之前先說一一下什麼是CA,
發送數據過程:
發送方: 計算數據特徵值----> 使用私鑰加密特徵值 ---> 隨機生成密碼對稱加密整個數據 ---> 使用接受方公鑰加密密碼
接收方: 使用私鑰解密密碼 ----> 解密整個數據 ----> 使用公鑰驗證身份 ----> 比較數據特徵值
那麼問題來了,誰來管理公鑰,任何在互聯網上傳播的數據都不安全,更不用說傳遞公鑰,它如果被篡改,那就無法驗證身份,所以不可能由用戶自己頒發公鑰。
這個時候需要有一個具有公信力的中間機構來做這份工作,那就是CA,由此引發了兩個概念:
CA : 證書頒發機構
PKI : 公鑰基礎設施,公鑰基礎構架
證書: 裏面存放了用戶的各種信息,最核心的部分就是公鑰
但是還有一個問題,誰來給CA頒發公鑰,解決方法是,CA自己給自己頒發公鑰。。。
下面小編來講講如何自己搭建CA
2.創建所需要的文件
touch /etc/pki/CA/index.txt 生成證書索引數據庫文件
echo 01 > /etc/pki/CA/serial 指定第一個頒發證書的序列號
3.CA自簽證書
3.1生成私鑰
cd /etc/pki/CA/
(umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
3.2生成自簽名證書
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: 證書的保存路徑
4、頒發證書
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 查看指定編號的證書狀態
5、吊銷證書
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
按着步驟一步一來,就好了,截圖是根據文字一步一步做的。