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自建和證書申請