作者namedkao (高山小屋? ?)
看板Python
標題[問題] 以IP開啟https網頁失敗(憑證錯誤)
時間Mon Jul 11 19:43:09 2016
請教版上高手:
本人用selenium + phantomjs
以IP開啟https網頁失敗,
(無法讀取應有資訊,例如title)
以域名開啟則沒有問題。
如開啟以下2個網址(其實是同1個網頁):
https://74.125.203.94 (失敗)
https://www.google.com.tw (成功)
推測應該是憑證錯誤的安全性問題,
嘗試加入webdriver.PhantomJS參數如下:
service_args=
['--ignore-ssl-errors=true',
'--ssl-protocol=any',
'--proxy-type=none']
一樣沒用,
非必要的話,
暫不考慮使用Chrome或Firefox,
也希望不用額外解析域名,
不知版上各位高手有何建議,
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.124.252
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1468237397.A.77A.html
※ 編輯: namedkao (220.132.124.252), 07/11/2016 19:45:20
1F:→ kenduest: 剛剛幫你用 curl 工具測試一下07/11 19:45
4F:→ kenduest: 無法正常打開是很正常的...07/11 19:46
不是很明白Ken大的意思,
完全是因為『重新導向』的問題嗎?
但是用一般瀏覽器輸入:
https://74.125.203.94
通常會顯示:
此網站的安全性憑證有問題。
另外請教,
如果真是『重新導向』的問題,
有好方法可以截取導向成功後的頁面嗎?
※ 編輯: namedkao (220.132.124.252), 07/11/2016 20:04:05
※ 編輯: namedkao (220.132.124.252), 07/11/2016 20:04:55
5F:→ AndCycle: 你先回答一下你為什麼要用ip吧,這牽扯到 Virtual Host07/11 20:28
6F:推 kenduest: 要說是 Google 的問題也沒錯,你的程式碼用法也沒錯07/11 20:52
7F:→ kenduest: 畢竟 Google 這個回應結果最後是無法連線上07/11 20:53
8F:→ kenduest: 回到你的程式碼來說是的確可以忽略 ssl憑證檢查07/11 20:54
9F:→ kenduest: 不過現在這年頭許多網站都是至少走 http/1.1存取07/11 20:55
10F:→ kenduest: http/1.1內多個 Host: 可以指定存取的主機名稱07/11 20:55
11F:→ kenduest: 你這樣直接用 ip 連線在 Name-based 虛擬主機站台07/11 20:56
12F:→ kenduest: 無法讓對方判斷你到底是要連線存取哪個站台07/11 20:57
13F:→ kenduest: 這在目前許多使用cdn服務站台上更是如此07/11 20:58
14F:→ kenduest: 拉回來,你不應該直接使用 ip 進行連線存取web07/11 20:59
15F:推 kenduest: 少送Host這個欄位在Google服務群主機上來說,對方設定回07/11 21:03
16F:→ kenduest: 應內容就是如此07/11 21:03
17F:推 kenduest: 所以你還是要用 ip 方式連線存取嗎?答案當然是不要這07/11 21:12
18F:→ kenduest: 樣子做。另外 ssl 略過檢查也不好,想清楚略過的目的。
感謝.大致了解了,
舉google ip為例,
以及沒考慮vhost,
只是為了描述並簡化問題,
核心問題是想避免憑證錯誤,
並顯示有意義的網頁資訊,
但是本人使用的參數似乎沒用,
才來提問,
感謝ken大耐心解答。
※ 編輯: namedkao (180.205.130.168), 07/11/2016 22:05:49
19F:推 cph911: ssl 憑證通常是簽發給domain的,所以不是用簽發的domain連07/12 17:10
20F:→ cph911: 線一定會憑證錯誤07/12 17:10
21F:→ uranusjr: 你的問題只有一個正解:無法避免, 你亂搞被拒絕也是剛好
是的,
這下子只能腳踏實地做人,
老老實實的查dn和vhost了,
再次感謝各位。
※ 編輯: namedkao (220.132.124.252), 07/12/2016 18:45:23
22F:→ kenduest: 憑證可以簽給 ip 使用嗎?答案是可以,只是很不尋常 07/15 15:56
23F:→ kenduest: 我想一開始樓主的問題是需要分開兩個階段來談 07/15 15:56
24F:→ kenduest: 1. 避開檢查是否憑證有效,--ignore-ssl-errors=true 07/15 15:57
25F:→ kenduest: 這個參數是正確的,所以這沒有問題 07/15 15:57
26F:→ kenduest: 2. google 網站你用 https://ip 連線的確有回應 07/15 15:57
28F:→ kenduest: 變成去用標準 http 存取一個 port 443 ssl 加密的站台 07/15 15:58
29F:→ kenduest: 所以溝通錯誤導致有問題 07/15 15:59
30F:→ kenduest: 3. 若只是舉例而已,那其實換其他站台就比較沒這問題 07/15 15:59
31F:→ kenduest: 比方 yahoo 站台你這樣測試就沒有問題,最後可以開啟 07/15 16:00
32F:→ kenduest: 只是你用 tw.yahoo.com 去查到 ip 然後用 https://ip 07/15 16:01
33F:→ kenduest: 去連線,最後會看到的是英文版的 yahoo 07/15 16:01
34F:→ kenduest: 畢竟他們有搞 CDN,而且有虛擬主機等設定所以最後是 07/15 16:02
35F:→ kenduest: 返回英文版網頁當預設內容 07/15 16:02