phantomjs 双向认证,访问nginx,https

应用背景:

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

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

转载请注明