应用背景:
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双向验证:
研究了一下,分享出来,欢迎大家指正
转载请注明