nginx的ssl客户端认证 - ssl_verify_client
环境:宝塔环境中的nginx 1.16
过程:
1.先为站点szt.anqun.org设置好https访问
2.openssl genrsa -des3 -out ca.key 4096 # 创建好自己的 Certificate Authority,会要求输入一个密码
3.openssl req -new -x509 -days 365 -key ca.key -out ca.crt # 创建好CA Certificate
4.openssl genrsa -des3 -out user.key 4096 # 创建用户user的密匙
5.openssl req -new -key user.key -out user.csr # 创建用户user的CSR
6.openssl x509 -req -days 365 -in user.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out user.crt # 签发用户的证书
7.openssl pkcs12 -export -out user.pfx -inkey user.key -in user.crt -certfile ca.crt # 生成pfx证书,方便用户导入到浏览器里。会提示设置一个导入密码
8.在nginx的站点配置文件里,在适合的位置添加两行:
# client certificate
ssl_client_certificate /www/server/nginx/ca.crt;
ssl_verify_client optional;
9.没有证书的用户访问,会提示400错误
10.在用户的浏览器,如火狐浏览器里导入pfx证书
11.访问站点时,会提示选择证书,确定选择后,正常访问
参考: