Python3 打開 https 鏈接,異常:“SSL: CERTIFICATE_VERIFY_FAILED”


Python3 打開 https 鏈接,異常:“SSL: CERTIFICATE_VERIFY_FAILED”

一、問題

Python2.7.9 之后,當使用urllib.urlopen打開一個 https 鏈接時,會驗證一次 SSL 證書。而當目標網站使用的是自簽名的證書時就會拋出如下異常:

<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)>

二、解決方案

1,方案一

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

import ssl
 
context = ssl._create_unverified_context()
urllib.request.urlopen(req,context=context)

2,方案二

全局取消證書驗證:

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

3,方案三

使用的是requests模塊,將方法中的verify設置位False即可:

requests.get(url, headers=Hostreferer,verify=False) 

 


免責聲明!

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



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