CA根證書制作
# 創(chuàng)建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相同
制作證書
# 創(chuàng)建私鑰
openssl genrsa -out server.pem 1024
openssl rsa -in server.pem -out server.key
# 生成簽發(fā)請(qǐng)求
openssl req -new -key server.pem -out server.csr
# 使用CA證書進(jìn)行簽發(fā)
openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt
# 驗(yàn)證簽發(fā)證書是否正確
openssl verify -CAfile ca.crt server.crt
# 制作p12證書(導(dǎo)入瀏覽器)
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12
客戶端證書創(chuàng)建方式與服務(wù)器證書創(chuàng)建方式相同
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