应用背景:

      phantomjs的一个爬虫,访问https站点,单向认证(只认证服务器身份)的都可以,双向认证(服务器和客户端都需要认证)必须上传本地证书;

      开始用一个包含公钥私钥的PEM证书访问,怎么都不行,必须要用拆成两个,把公钥和私钥拆开,用--ssl-certificates-path=<val>不行,注意路径

 

命令行:

      #用根证书已经签名过的客户端证书client.pfx,生成公钥

      openssl pkcs12 -nokeys -clcerts -in client.pfx(*.p12一样的) -out client.cer(*.pem一样的)     

      #生成私钥,有无nodes很重要,没有的话需要上传密码

      openssl pkcs12 -in client.pfx -out client.key -nocerts -nodes

      #无nodes多加:--ssl-client-key-passphrase=你的密码;nginx的双向验证地址:https://192.168.1.102

      phantomjs --ssl-client-certificate-file=client.cer的物理路径 --ssl-client-key-file=client.key的物理路径 --ignore-ssl-errors=true --ssl-protocol=default  --web-security=false loadspeed.js https://192.168.1.102

 

输出:

      返回,:Page title is Welcome to nginx!:就成功了

      如果返回400,看看证书是否生成正确,公钥私钥等等

搭建nginx双向验证:     

      http://blog.chinaunix.net/uid-22006903-id-149747.html

 

研究了一下,分享出来,欢迎大家指正

转载请注明