Nginx 配置Https 实现双向认证 同时支持http强转为https

 1:设置http对应的配置

   server {
        listen 80;
        server_name www.httech-bj.com;
     
        return      301 https://$server_name$request_uri;     

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

 
    }

 2:设置https对应的配置

    server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      /opt/ssl/server.crt;
        ssl_certificate_key  /opt/ssl/server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        
         ssl_verify_client on;

        ssl_client_certificate /opt/ca/clientCA.crt;

        ssl_verify_depth 1;

        
        location / {
            root   html;
            index  index.html index.htm;
        }
    }

}

server.crt 为服务器端证书  server.key 为秘钥  clientCA.crt 为双向双向认证的根证书

clientCA.crt 此证书为自己生成的证书  server.crt server.key 这两个一般是从证书中心买的  如果是自己生成的在浏览器访问的时候会提示不安全链接

 在此过程中网上有很多例子 server.crt server.key 是自己用spenssl 生成的 如果是商业用途的话建议使用从正规机构购买的这样安全等级也高 
在配置文件中不能有中文注释 楼主在配置过程中遇到这样的问题 浪费了不少时间

猜你喜欢

转载自blog.csdn.net/zhanaolu4821/article/details/89500217