nginx 1.12 HTTPS双向认证配置

使用openssl生成相关证书:
#生成CA私钥,私钥会被加密,需要设置密码
openssl genrsa -aes256 -out ca.key 2048
#生成CA证书签名请求,需要输入CA私钥密码,并按提示输入以下信息:Country Name、State or Province Name、Locality Name、Organization Name、Organizational Unit Name、Common Name
openssl req -new -key ca.key -out ca.csr
#自签名生成CA证书,需要输入CA私钥密码
openssl x509 -req -days 36500 -sha1 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.crt
 
#生成服务端私钥,私钥会被加密,需要设置密码
openssl genrsa -aes256 -out server.key 2048
#解密服务端私钥,需要输入服务端私钥密码
openssl rsa -in server.key -out server.key
#生成服务端证书签名请求,并按提示输入以下信息:Country Name、State or Province Name、Locality Name、Organization Name、Organizational Unit Name、Common Name
openssl req -new -key server.key -out server.csr
#用CA私钥签名生成服务端证书,需要输入CA私钥密码
openssl x509 -req -days 36500 -sha1 -extensions v3_req -CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial -in server.csr -out server.crt
 
#生成客户端私钥,私钥会被加密,需要设置密码
openssl genrsa -aes256 -out client.key 2048
#解密客户端私钥,需要输入客户端私钥密码
openssl rsa -in client.key -out client.key
#生成客户端证书签名请求,并按提示输入以下信息:Country Name、State or Province Name、Locality Name、Organization Name、Organizational Unit Name、Common Name
openssl req -new -key client.key -out client.csr
#用CA私钥签名生成客户端证书,需要输入CA私钥密码
openssl x509 -req -days 36500 -sha1 -extensions v3_req -CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial -in client.csr -out client.crt
#导出客户端私钥和证书到p12证书,需要设置p12证书密码
openssl pkcs12 -export -clcerts -inkey client.key -in client.crt -out client.p12
 
配置示例:
server {
listen 80;
listen 443 ssl;
server_name localhost;
 
keepalive_timeout 70;
 
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
ssl_certificate /usr/local/nginx/ssl/server.crt;
ssl_certificate_key /usr/local/nginx/ssl/server.key;
ssl_client_certificate /usr/local/nginx/ssl/ca.crt;
ssl_verify_client on;
 
原文地址:https://www.cnblogs.com/gjb724332682/p/8610714.html