NGINX+OPENSSL实现SSL双向认证

1. 目的

2. SSL身份认证机制

3. 利用OPENSSL生成证书

4. Nginx发布证书,实现SSL双向认证

5. Ruby+客户端证书访问网站

 

1.目的

搭建SSL双向证书认证

实现按IP授权、按客户端证书号限制访问权限

 

2.SSL证书身份验证机制

http://www.co.ccpit.org/ca/Htm/menu-item-frame2-content10.htm

http://lulu87.blog.51cto.com/1244696/379556

 

3.利用OPENSSL生成证书

http://www.gaojinbo.com/openssl-%E7%94%9F%E6%88%90%E8%87%AA%E7%AD%BE%E8%AF%81%E4%B9%A6.html

http://blog.jamiesun.me/archives/tag/nginx

 

4.Nginx发布实现SSL双向验证

1.双向认证+根据证书序列号进行限制

server {
       listen       8081;
       server_name  [email protected];
       #charset koi8-r;
       #access_log  logs/host.access.log  main;
       root D:/www-date/public;
       location ^~/1 {
           if ( $ssl_client_serial !~* "9783A95824D433EC" )
           {
               return 403;
           }
           #root D:/www-date/public;
           #allow 192.168.69.182;
           #deny all;
           #index  index.html index.htm;
       }
       location ^~/2 {
           if ( $ssl_client_serial !~* "9783A95824D433EC" )
           {
               return 403;
           }
           #root D:/www-date/public;
           #allow 192.168.69.80;
           #deny all;
           #index  index.html index.htm;
       }
       location / {
           if ( $ssl_client_serial ~* "9783A95824D433EC" )
           {
               return 403;
           }
           #deny all;
           #root D:/www-date/public;
           #index  index.html index.htm;
       }
       #error_page  404              /404.html;
       #SSL
       ssl on;
       ssl_certificate  E:/nginx/nginx-1.1.7/ssl/server.crt;
       ssl_certificate_key  E:/nginx/nginx-1.1.7/ssl/server_no.key;
       ssl_client_certificate E:/nginx/nginx-1.1.7/ssl/ca.crt;
       ssl_session_timeout 5m;
       ssl_verify_client on; 

       ssl_protocols  SSLv2 SSLv3 TLSv1;
       ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
       ssl_prefer_server_ciphers   on; 

       # redirect server error pages to the static page /50x.html
       #
       error_page   500 502 503 504  /50x.html;
       location = /50x.html {
           root   html;
       }

5.Ruby+客户端证书访问网站

你可能感兴趣的:(OpenSSL)