Python [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 解決方法


 

問題的原因是“SSL: CERTIFICATE_VERIFY_FAILED”。

Python 升級到 2.7.9 之后引入了一個新特性,當使用urllib.urlopen打開一個 https 鏈接時,會驗證一次 SSL 證書。

而當目標網站使用的是自簽名的證書時就會拋出一個 urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)> 的錯誤消息,

解決方案包括下列兩種方式:

1. 使用ssl創建未經驗證的上下文,在urlopen中傳入上下文參數

import ssl import urllib2 context = ssl._create_unverified_context() print urllib2.urlopen("https://www.12306.cn/mormhweb/", context=context).read()

2. 全局取消證書驗證

import ssl import urllib2 ssl._create_default_https_context = ssl._create_unverified_context print urllib2.urlopen("https://www.12306.cn/mormhweb/").read()

注意:在全全局請求文件導入import ssl

import ssl ssl._create_default_https_context = ssl._create_unverified_context

至此,問題圓滿解決!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM