馬哥教育37期第六週部落格作業 搭建私有CA

2023-02-07 12:00:56 字數 2764 閱讀 4199

什麼是證書?

它是用來證明某某東西確實是某某東西的東西。通俗地說,證書就好比公章。通過公章,可以證明相關檔案確實是對應的公司發出的。

理論上,人人都可以找個證書工具,自己做一個證書。

什麼是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檔案內容

引用: