Nginx 双向认证配置

2018/09/22 Nginx 双向认证

证书的签发参考:

https://blog.viakiba.cn/2018/09/08/Java-HTTPS-%E8%87%AA%E7%AD%BE%E8%AF%81%E4%B9%A6%E8%AE%BF%E9%97%AE/

多级证书链操作类似,如果是多级证书,可能会遇到一个一个双向认证的问题,仅针对与 Nginx配置而言, https://maoxian.de/2016/02/1370.html 。

Nginx 双向配置

server {
        listen 443 ssl;
        server_name nginx.skyguard.com.cn;

        ssl on;
        ssl_certificate ../ssl/httpd.crt;
        ssl_certificate_key ../ssl/httpd.key;
        ssl_protocols TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;

        # 如果是场馆两级证书链,即客户端证书不是直接由根证书进行签发,记得配置如下证书链深度,默认是1 即直接签发
        ssl_verify_depth 1

        # 开启客户端认证   这里是配置客户端证书
        ssl_client_certificate ../ssl/cacert.pem;
        ssl_verify_client on;

        location / {
                root   html;
                index  index.html index.htm;
         }
}
# 启动Nginx服务器

SpringBoot 配置

# 单向
server.port=8080        
server.ssl.key-store=classpath:server.p12        
server.ssl.key-store-password=aaa123(改为自己的密码)        
server.ssl.keyStoreType=PKCS12
server.ssl.enabled-protocols=TLSv1.2

# 客户端认证 (双向配置)
server.ssl.trust-store=classpath:server.p12        
server.ssl.trust-store-password=bbb123(改为自己的密码)        
server.ssl.client-auth=need        
server.ssl.trust-store-type=PKCS12
server.ssl.trust-store-provider=SUN
---------------------

验证(浏览器)

Chrome浏览器中访问双向认证服务器 修改Windows的hosts文件(C:\Windows\System32\drivers\etc\hosts),加入如下一行数据 修改Linux的hosts文件(\etc\hosts),加入如下一行数据

127.0.0.1 xxxxxx.cn

向浏览器导入证书,进入:设置=>显示高级设置=>管理证书 证书概览

点击导入证书 证书概览 然后一直下一步完成即可

然后在浏览器中输入:网址 选择导入的证书即可。

Search

    Table of Contents