首页 > 技术文章 > https 双向证书

xkcp008 2016-10-17 11:12 原文

  一:服务器端

1、首先需要配置站点的SSl证书

打开Nginx安装目录下conf目录中的nginx.conf文件 找到 
   # HTTPS server 
    # 
    #server { 
    #    listen       443; 
    #    server_name  localhost; 
    #    ssl                  on; 
    #    ssl_certificate    cert.pem; 
    #    ssl_certificate_key  cert.key; 
    #    ssl_session_timeout  5m; 
    #    ssl_protocols  SSLv2 SSLv3 TLSv1; 
    #    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; 
    #    ssl_prefer_server_ciphers   on; 
    #    location / { 
    #        root   html; 
    #        index  index.html index.htm; 
    #    } 
    #} 
将其修改为 :
    server { 
        listen       443; 
        server_name  localhost; 
        ssl                  on; 
        ssl_certificate      sslkey/public.cer;      (证书公钥)
        ssl_certificate_key      sslkey/private.key;      (证书私钥)
        ssl_session_timeout  5m; 
        ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; 
        ssl_ciphers AES128-SHA:AES256-SHA:DES-CBC3-SHA:AES256-SHA256:AES128-SHA256;
        ssl_prefer_server_ciphers   on; 
        location / { 
            root   html; 
            index  index.html index.htm; 
        } 
    } 
保存退出,并重启Nginx。 
通过https方式访问您的站点,测试站点证书的安装配置。

3、配置强身份认证
1、  修改nginx.conf文件
如果要求客户采用客户证书认证方式,可以在原来的配置下增加如下参数:
server {
        ......
        ......
        ......
       ssl_verify_client            on            要求SSL客户证书认证。
       ssl_client_certificate      trust.cer     签发客户证书的CA证书,用来验证客户证书。
        ssl_verify_depth           4              SSL客户证书认证链长度。
}
 
4、重启站点使用您的客户端证书进行登陆测试
     具体可以参考如下链接: 

 

 
 
二:客户端配置
将沃通或者其他机构下发的.pfx转成.p12 将之前服务器端证书,转成.cer给到客户端即可
 
client.p12 (为沃通下发的客户端证书,利用火狐浏览器转成的) 为IOS客户端证书,server.cer(nginx上vfcgy.com.crt 转成.cer)为服务端证书
 

需要准备的自签名证书

1.服务器私钥 2.由CA签发的含有服务器公钥的数字证书 3.CA的数字证书。在双向认证的实践中,通常服务器可以自己作为证书机构,并且由服务器CA签发服务器证书和客户端证书。

1.客户端私钥 2. 由CA签发的含有客户端公钥的数字证书。为了避免中间人攻击,客户端还需要内置服务器证书,用来验证所连接的服务器是否是指定的服务器。

  • 服务端 .cer
  • 客户端 .p12

 

详见https://github.com/cuiwe000/HttpsDemo

 

推荐阅读