使用OpenSSL建立生成CA證書、伺服器、客戶端證書及金鑰

牧之丨發表於2024-04-02



說明:

對於SSL單向認證:
伺服器需要CA證書、server證書、server私鑰,客戶端需要CA證。

對於SSL雙向認證:
伺服器需要CA證書、server證書、server私鑰,客戶端需要CA證書,client證書、client私鑰。

(一)生成CA證書
1、建立CA證書私鑰

openssl genrsa -aes256 -out ca.key 2048

2、請求證書

證數各引數含義如下:

C-----國家(Country Name)
ST----省份(State or Province Name)
L----城市(Locality Name)
O----公司(Organization Name)
OU----部門(Organizational Unit Name)
CN----產品名(Common Name)
emailAddress----郵箱(Email Address)
openssl req -new -sha256 -key ca.key -out ca.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=CA/emailAddress=admin@test.com"

3、自簽署證書

openssl x509 -req -days 36500 -sha256 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.cer
1
(二)生成伺服器證書
1、建立伺服器私鑰

openssl genrsa -aes256 -out server.key 2048

2、請求證書

openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=SERVER/emailAddress=admin@test.com"

3、使用CA證書籤署伺服器證書

openssl x509 -req -days 36500 -sha256 -extensions v3_req -CA ca.cer -CAkey ca.key -CAserial ca.srl -CAcreateserial -in server.csr -out server.cer

(三)生成客戶端證書
1、生成客戶端私鑰

openssl genrsa -aes256 -out client.key 2048

2、申請證書

openssl req -new -sha256 -key client.key -out client.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=CLIENT/emailAddress=admin@test.com"

3、使用CA證書籤署客戶端證書

openssl x509 -req -days 36500 -sha256 -extensions v3_req -CA ca.cer -CAkey ca.key -CAserial ca.srl -CAcreateserial -in client.csr -out client.cer

(四)測試
單向認證命令列:

伺服器:

openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 22580

客戶端:

openssl s_client -CAfile ca.cer -cert client.cer -key client.key -connect 127.0.0.1 -port 22580

雙向認證:

伺服器:

openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 22580 -Verify 1

客戶端:

openssl s_client -CAfile ca.cer -cert server.cer -key server.key -cert client.cer -key client.key -connect 127.0.0.1 -port 22580

ends…

相關文章