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;

nginx-ssl-client-1.png

9.没有证书的用户访问,会提示400错误
nginx-ssl-client-2.png

10.在用户的浏览器,如火狐浏览器里导入pfx证书
nginx-ssl-client-3.png

11.访问站点时,会提示选择证书,确定选择后,正常访问
nginx-ssl-client-4.png

参考:

标签: nginx

添加新评论