本文以windows下自建CA爲例。
目錄
openssl下載與安裝
下載地址:
http://slproweb.com/products/Win32OpenSSL.html?utm_source=so
OpenSSL 支持 32 位和 64 位,根據自己系統選擇對應的安裝包。
OpenSSL安裝
安裝默認安裝,next and next。最後有一個打賞頁,取消選擇,點擊”Finish“,安裝完成。
安裝驗證:在命令提示窗口輸入“openssl version”,顯示版本信息表明安裝成功。
CA體系介紹
CA首先有一個根CA,根CA是自簽發生生成。爲了考慮CA體系的安全和管理需要,根CA一般不直接簽發用戶證書;而是由根CA簽發一個或者多箇中間(中級)CA,由中間CA來簽發最終用戶CA。
例如:
CA目錄準備
在進行自建CA部署之前,在D:\創建“rootca”主目錄,在rootca下創建一個私鑰目錄(private)和一個證書目錄(certs)。
OpenSSL自建CA部署
根據CA體系要求,我們第一步首選創建根CA。
打開 cmd 命令窗口(運行中輸入cmd),切換到D:\rootca目錄下。
創建根CA
創建根CA私鑰
D:\rootca>openssl genrsa -aes256 -out private/rootca.key.pem 2048
輸入私鑰保護密碼,爲了方便後續操作方便,所有密碼均設爲123456。
創建根CA證書請求
openssl req -new -key private/rootca.key.pem -out private/rootca.csr -subj "/C=CN/ST=JS/L=NJ/O=TestCA/OU=Root CA/CN=TestCA Root CA" -config “C:/Program Files/OpenSSL-Win64/bin/cnf/openssl.cnf”
簽發根CA證書
根CA證書的簽發採用自簽名方式,使用的第一步創建的私鑰。
openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey private/rootca.key.pem -in private/rootca.csr -out certs/rootca.cer
錯誤提示:
有效期設爲7300時會報asn1格式錯誤,改爲3650,可以成功,這個是日期編碼的原因。
openssl x509 -req -days 7300 -sha1 -extensions v3_ca -signkey private/rootca.key.pem -in private/rootca.csr -out certs/rootca.cer
在“certs”目錄生成了根CA證書“rootca.cer”。
簽發中間(中級)CA
步驟與根CA類似,只有在簽發中間CA是使用的是根CA證書私鑰。
創建中間CA私鑰。
D:\rootca>openssl genrsa -aes256 -out private/ca.key.pem 2048
創建中間CA證書請求
D:\rootca>openssl req -new -key private/ca.key.pem -out private/ca.csr -subj "/C=CN/ST=JS/L=NJ/O=TestCA/OU=TestCA L1/CN=TestCA Certificate Authority" -config "C:/Program Files/OpenSSL-Win64/bin/cnf/openssl.cnf"
由根CA簽發中間CA
D:\rootca>openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA certs/rootca.cer -CAkey private/rootca.key.pem -CAserial rootca.srl -CAcreateserial -in private/ca.csr -out certs/ca.cer
中間CA生成功,通過證書路徑,可以看到上的上級證書(根CA)。
簽發用戶CA
用戶CA是由中間CA簽發的,到此爲至根CA可以放到倉庫好好保存起來啦。
創建用戶CA私鑰
D:\rootca>openssl genrsa -aes256 -out private/user.key.pem 2048
創建用戶CA證書請求
D:\rootca>openssl req -new -key private/user.key.pem -out private/user.csr -subj "/C=CN/ST=JS/L=NJ/O=Alice/OU=Alice Li/CN=Test Company" -config "C:/Program Files/OpenSSL-Win64/bin/cnf/openssl.cnf"
由中間CA簽發用戶CA
D:\rootca>openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA certs/ca.cer -CAkey private/ca.key.pem -CAserial ca.srl -CAcreateserial -in private/user.csr -out certs/user.cer
到此爲至整個自建CA已經搭建完成,且成功簽發了一張用戶CA,由於鄙人水平有限,不足之處請不吝賜教,希望大家共同進步。