什麼是證書? 它是用來證明某某東西確實是某某東西的東西。通俗地說,證書就好比公章。通過公章,可以證明相關文件確實是對應的公司發出的。 理論上,人人都可以找個證書工具,自己做一個證書。 什麼是CA? CA全稱Certificate Authority,也叫“證書授權中心”。它是負責管理和簽發證書的第三 ...
什麼是證書?
它是用來證明某某東西確實是某某東西的東西。通俗地說,證書就好比公章。通過公章,可以證明相關文件確實是對應的公司發出的。
理論上,人人都可以找個證書工具,自己做一個證書。
什麼是CA?
CA全稱Certificate Authority,也叫“證書授權中心”。它是負責管理和簽發證書的第三方機構。
什麼是CA證書?
CA證書,就是CA頒發的證書。
前面說了,人人都可以找工具製作證書。但是製作出來的證書是沒用的,因為不具備權威性。
證書的簽發過程
a.服務方 S 向第三方機構CA提交公鑰、組織信息、個人信息(功能變數名稱)等信息並申請認證
b.CA 通過線上、線下等多種手段驗證申請者提供信息的真實性,如組織是否存在、企業是否合法,是否擁有功能變數名稱的所有權等
c.如信息審核通過,CA 會向申請者簽發認證文件-證書。
證書包含以下信息:申請者公鑰、申請者的組織信息和個人信息、簽發機構 CA 的信息、有效時間、證書序列號等信息的明文,同時包含一個簽名
簽名的產生演算法:首先,使用散列函數計算公開的明文信息的信息摘要,然後,採用 CA 的私鑰對信息摘要進行加密,密文即簽名
d.客戶端 C 向伺服器 S 發出請求時,S 返回證書文件
e.客戶端 C 讀取證書中的相關的明文信息,採用相同的散列函數計算得到信息摘要,然後,利用對應 CA 的公鑰解密簽名數據,對比證書的信息摘要,如果一致,則可以確認證書的合法性,即公鑰合法;
f.客戶端然後驗證證書相關的功能變數名稱信息、有效時間等信息
g.客戶端會內置信任 CA 的證書信息(包含公鑰),如果CA不被信任,則找不到對應 CA 的證書,證書也會被判定非法。
在這個過程註意幾點
1.申請證書不需要提供私鑰,確保私鑰永遠只能伺服器掌握
2.證書的合法性仍然依賴於非對稱加密演算法,證書主要是增加了伺服器信息以及簽名
3.內置 CA 對應的證書稱為根證書,頒發者和使用者相同,自己為自己簽名,即自簽名證書
證書=公鑰+申請者與頒發者信息+簽名
CA證書常用於https (SSL加密)
Centos 7為伺服器
Centos 6為申請CA證書的客戶機
一、搭建一臺CA伺服器
CA證書根目錄/etc/pki/CA
1、生成私鑰
()代表在子bash中運行,目的是為了不改變當前Shell中的umask值
genrsa 生成私鑰
-out 私鑰的存放路徑 cakey.pem 為密鑰名需與配置文件中一致
2048 密鑰長度
2、自簽證書
req 生成證書簽署請求
-x509 生成自簽署證書
-days n 證書的有效天數
-new 新請求
-key /path/to/keyfile 指定私鑰文件
-out /path/to/somefile 輸出文件位置
3、創建CA伺服器所需文件
touch /etc/pki/CA/index.txt 生成證書索引資料庫文件
echo 01 > /etc/pki/CA/serial 指定第一個頒發證書的序列號
二、客戶機申請證書
1、生成私鑰
2、生成證書請求
標紅的三項須和CA伺服器一致
證書申請一般通用csr
3、把簽署請求文件發送給CA伺服器
三、CA伺服器簽署證書
1、在CA伺服器上簽署證書
2、發送給客戶機申請者
四、吊銷證書
(一)節點請求吊銷
1、獲取證書serial
x509 證書格式
-in 要吊銷的證書
-noout 不輸出額外信息
-serial 顯示序列號
-subject 顯示subject信息
(二)CA驗證信息
1、確認提交的serial和subject信息與index.txt文件中的信息是否一致
2、吊銷證書
-revoke 刪除證書
查看被吊銷的證書列表
3、指定吊銷證書的編號(如果是第一次吊銷)
4、更新證書吊銷列表
-gencrl 生成證書吊銷列表
5、查看crl文件內容
-text 以文本形式顯示