此提交:support for SSL Client Authentication ...告诉我们有一个可以使用的证书标志......
我的尝试:
phantomjs main.js \
--ssl-protocol=any \
--ssl-client-certificate-file=/tmp/joppli/data/certificate/certificado.crt \
--ssl-client-key-file=/tmp/joppli/data/certificate/certificado.key \
--ssl-client-key-passphrase=foobar \
--web-security=false
然而,我尝试了什么,我无法访问该页面。我明白了:
page.onLoadFinished
arguments[0] = "fail"
以上命令是否正确?为什么会失败?我怎样才能调试错误? (fail
消息留下很多欲望)
我尝试访问的页面是:https://www.sedecatastro.gob.es/
在没有ssl:http://www.sedecatastro.gob.es/的情况下,它可以正常工作。
但是,我无法使用特定证书访问此网页的某些部分:
答案 0 :(得分:1)
该站点的HTTPS版本未提供其整个TLS证书链,这会导致phantomjs在不受信任的证书上失败。尝试将--ignore-ssl-errors=true
添加到命令行,看看是否有效。如果是这样,正确的解决方案是下载中间CA的证书,然后告诉phantomjs信任--ssl-certificates-path=/path/to/ca.pem
。
您需要的证书位于https://ssl-tools.net/certificates/ec503507b215c4956219e2a89a5b42992c4c2c20.pem,https://www.ssllabs.com/ssltest/analyze.html?d=sedecatastro.gob.es可以获得进一步的诊断信息