1. 程式人生 > >nginx 配置 ssl 雙向證書

nginx 配置 ssl 雙向證書

tro genrsa x509 code common alt ffffff openss 方式

技術分享圖片

CA 根證書制作

# 創建 CA 私鑰
openssl genrsa -out ca.key 2048

#制作 CA 根證書(公鑰)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

註意:
CA 證書中的 Common Name 不能與 server 和 client 證書中的 Common Name 相同

制作證書

# 創建私鑰
openssl genrsa -out server.pem 1024
openssl rsa -in server.pem -out server.key

# 生成簽發請求
openssl req -new -key server.pem -out server.csr

# 使用 CA 證書進行簽發
openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt

# 驗證簽發證書是否正確
openssl verify -CAfile ca.crt server.crt

# 制作 p12 證書(導入瀏覽器)
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12

客戶端證書創建方式與服務器證書創建方式相同

nginx 配置

ssl on;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_client_certificate ssl/ca.crt;
ssl_verify_client on;

使用

curl --key client.key --cert client.crt -XGET "https://localhost:11443" -k -v

nginx 配置 ssl 雙向證書