[問題] requests 時出現 CERTIFICATE_VERIFY_FAILED

作者: chan15 (ChaN)   2023-08-11 09:09:36
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 的最終
手段,所以希望有相關經驗的網友們可以分享一下有什麼可能性跟解法,感謝。
作者: CMJ0121 (請多指教!!)   2023-08-11 12:32:00
可能是客戶的網路環境有做 MITM 監聽 HTTPS 封包
作者: chan15 (ChaN)   2023-08-11 12:56:00
我網址改google會有一樣的錯誤,但我使用curl可以順利取到response body,頭痛ing
作者: TuCH (謬客)   2023-08-11 13:03:00
Python吃的ca路徑可能不太一樣 確認一下
作者: chan15 (ChaN)   2023-08-11 13:43:00
TuCH兄可以給點提示嗎
作者: lycantrope (阿寬)   2023-08-11 14:09:00
就字面意思,python跟curl用的ca路徑不同
作者: ToastBen (吐司邊)   2023-08-11 22:43:00
CA是否被置換掉了?https://tinyurl.com/23json72

Links booklink

Contact Us: admin [ a t ] ucptt.com