[问题] 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