[问题] 以IP开启https网页失败(凭证错误)

楼主: namedkao (高山小屋￾N  )   2016-07-11 19:43:09
请教版上高手:
本人用selenium + phantomjs
以IP开启https网页失败,
(无法读取应有资讯,例如title)
以域名开启则没有问题。
如开启以下2个网址(其实是同1个网页):
https://74.125.203.94 (失败)
https://www.google.com.tw (成功)
推测应该是凭证错误的安全性问题,
尝试加入webdriver.PhantomJS参数如下:
service_args=
['
作者: kenduest (小州)   2016-07-11 19:45:00
刚刚帮你用 curl 工具测试一下curl -k -v https://74.125.203.94结果 http 重导指向 http://www.google.com:443/无法正常打开是很正常的...
作者: AndCycle (AndCycle)   2016-07-11 20:28:00
你先回答一下你为什么要用ip吧,这牵扯到 Virtual Host
作者: kenduest (小州)   2016-07-11 20:52:00
要说是 Google 的问题也没错,你的程式码用法也没错毕竟 Google 这个回应结果最后是无法连线上回到你的程式码来说是的确可以忽略 ssl凭证检查不过现在这年头许多网站都是至少走 http/1.1存取http/1.1内多个 Host: 可以指定存取的主机名称你这样直接用 ip 连线在 Name-based 虚拟主机站台无法让对方判断你到底是要连线存取哪个站台这在目前许多使用cdn服务站台上更是如此拉回来,你不应该直接使用 ip 进行连线存取web少送Host这个字段在Google服务群主机上来说,对方设定回应内容就是如此所以你还是要用 ip 方式连线存取吗?答案当然是不要这
作者: cph911 (911_cph)   2016-07-12 17:10:00
ssl 凭证通常是签发给domain的,所以不是用签发的domain连线一定会凭证错误
作者: kenduest (小州)   2016-07-15 15:56:00
凭证可以签给 ip 使用吗?答案是可以,只是很不寻常我想一开始楼主的问题是需要分开两个阶段来谈1. 避开检查是否凭证有效,--ignore-ssl-errors=true这个参数是正确的,所以这没有问题2. google 网站你用 https://ip 连线的确有回应只是刚好重导他给你一个有点问题的 http://ip:443变成去用标准 http 存取一个 port 443 ssl 加密的站台所以沟通错误导致有问题3. 若只是举例而已,那其实换其他站台就比较没这问题比方 yahoo 站台你这样测试就没有问题,最后可以开启只是你用 tw.yahoo.com 去查到 ip 然后用 https://ip去连线,最后会看到的是英文版的 yahoo毕竟他们有搞 CDN,而且有虚拟主机等设定所以最后是返回英文版网页当默认内容

Links booklink

Contact Us: admin [ a t ] ucptt.com