1. 程式人生 > >CA自建和證書申請

CA自建和證書申請

linux自建ca和證書頒發

CA簡介:CA是負責簽發證書、認證證書、管理已頒發證書的機關。它要制定政策和具體步驟來驗證、識別用戶身份,並對用戶證書進行簽名,以確保證書持有者的身份和公鑰的擁有權。網上的公眾用戶通過驗證 CA 的簽字從而信任 CA ,任何人都可以得到 CA 的證書(含公鑰),用以驗證它所簽發的證書。

證書簡介:現在我們通過瀏覽器訪問網站,一般都有證書的,這些證書就是有CA頒發的,證明你這個網站是可靠的,尤其是一些購物網站,如:淘寶,京東,我們可以查看網站的源碼來查看他的證書(F12)找到Security查看。

LINUX模擬CA的建立和證書的申請

如何實現:

我們模擬把主機A當做根CA自建一個,主機B通過Openssl命令來模擬申請證書。

openssl配置文件:

/etc/pki/tls/openssl.cnf 我們找到CA和policy_match部分了解CA相關文件的存放和證書存放的文件。


dir= /etc/pki/CA CA相關文件的主目錄

certs= $dir/certs 存放發布證書的文件

crl_dir= $dir/crl 證書吊銷列表

database= $dir/index.txt 證書編號[默認不存在,要手動創建,不然會報錯]

new_certs_dir= $dir/newcerts 新頒發證書存放目錄

certificate= $dir/cacert.pem CA服務端的自簽名證書

serial= $dir/serial 下一個將要頒發證書的序列號 [

默認不存在,要手動創建,不然會報錯]

crlnumber= $dir/crlnumber 吊銷證書的編號

crl= $dir/crl.pem 吊銷證書存放的文件

private_key= $dir/private/cakey.pem證書的私鑰存放文件


policy= policy_match

# For the CA policy

[ policy_match ]

countryName= match 國家

stateOrProvinceName= match 省市

organizationName= match 公司名稱

organizationalUnitName= optional 公司單元名 可以不填 隨便怎麽翻譯吧

= =

commonName= supplied 名字

emailAddress= optional 郵箱

其中match表示自建根CA和申請證書時所填信息必須一致,optional可寫可不寫,supplied要寫可以不一樣。


主機A的配置

建立文件:

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)

括號裏定義umask進入子進程,只修改私鑰文件的權限 -des3是對私鑰文件進行加密 [文件名是特定的,不能更改]


生成一個自簽名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 n:證書的有效期限

-out /PATH/TO/SOMECERTFILE: 證書的保存

技術分享自簽名CA填寫信息如上圖,根據policy可知其中前124選項為match必須匹配,第5選項為supplied,為頒發者的名字,其他可以不填。


這樣我們的自簽名CA的相關文件就準備好了。

技術分享


主機B的配置:

生成自己的私鑰:還是一樣的命令

(umask 066;openssl genrsa -out /etc/pki/tls/private/wrz.key 2048)2048 指定位數

生成證書申請文件

openssl req -new -key /etc/pki/tls/private/wrz.key -days 365 -out /etc/pki/tls/wrz.csr 這是出現的界面和生成自簽CA一樣,需要填寫信息

技術分享

其中124選項在policy中為match,所以要和自簽CA時填寫的一致,第6項為被頒發的名稱。其他可填可不填。

將證書申請文件發送到主機A上:scp /etc/pki/tls/wrz.csr 192.168.109.159:/etc/pki/CA/


主機A收到證書申請文件

CA簽署證書,給請求者頒發證書

命令:openssl ca -in /etc/pki/tls/wrz.csr -out /etc/pki/CA/certs/wrz.crt -days 365 然後出現技術分享確認信息無誤後就可以簽名頒發證書了。

用sz命令把linux上生成的證書發送到Windows上,修改下後綴為.per 安裝證書,這樣就完成了自簽CA和證書頒發的過程。技術分享

CA自建和證書申請