[問題] 以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