作者chan15 (ChaN)
看板Python
標題[問題] requests 時出現 CERTIFICATE_VERIFY_FAILED
時間Fri Aug 11 09:09:36 2023
HTTPSConnectionPool(host='xxx.example.com', port=443): Max retries exceeded
with url: /list (Caused by SSLError(SSLCertVerificationError(1, '[SSL:
CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local
issuer certificate (_ssl.c:1131)')))
全錯誤訊息如上,我的模式是此段程式碼透過 tobix/pywine:3.8 編譯成 exe,在
windows 的環境跑 requests 的功能,同樣的 exe 在公司兩台 windows 10 跑都可以順利
執行完畢,但在客戶的 windows 10 就跑出這個訊息,我有找到這篇文
https://ithelp.ithome.com.tw/questions/10203445
有用 sslcheck 去看該網站,他的 ca bundle 是正常的,而且另外兩台 windows 10 就沒
有出現問題,所以應該是客戶的 windows 10 有什麼差異導致這個結果,我知道可以透過
verify=False 跟一些隱藏錯誤的設定繞過,但這些其實是屬於 not recommended 的最終
手段,所以希望有相關經驗的網友們可以分享一下有什麼可能性跟解法,感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.222.133.205 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1691716178.A.171.html
1F:→ CMJ0121: 可能是客戶的網路環境有做 MITM 監聽 HTTPS 封包 08/11 12:32
2F:→ chan15: 我網址改google會有一樣的錯誤,但我使用curl可以順利取到 08/11 12:56
3F:→ chan15: response body,頭痛ing 08/11 12:57
4F:推 TuCH: Python吃的ca路徑可能不太一樣 確認一下 08/11 13:03
5F:→ chan15: TuCH兄可以給點提示嗎 08/11 13:43
6F:→ lycantrope: 就字面意思,python跟curl用的ca路徑不同 08/11 14:09
7F:推 ToastBen: CA是否被置換掉了? 08/11 22:43