python:urllib.error.URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED]

一、問題描述

fine_tune  時提示如下:

urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)

       產生這個問題的原因在於python本身,pyhon升級到2.7.9以後,引入了一個新特性,當使用urllib打開https的鏈接時,會檢驗一次ssl證書。而當目標網站使用的是自簽名證書時,就會拋出urllib2.URLError的錯誤。

二、問題解決

那麼,解決方案如下兩種方式:

1.取消全局證書驗證

全局取消證書驗證(當項目對安全性問題不太重視時,推薦使用,可以全局取消證書的驗證,簡易方便)

import ssl
 
ssl._create_default_https_context = ssl._create_unverified_context

2.取消特定網址證書驗證

使用ssl創建未驗證的上下文,在url中傳入上下文參數(當項目整體非常重視安全問題時,推薦這種方式,可以局部取消證書驗證) 

import ssl
 
context = ssl._create_unverified_context()

將context傳入url函數的context參數中,比如

urllib2.urlopen('目標網址',context=context).read()

這樣就解決了ssl:certificate_verify_failed這個問題

 

參考鏈接https://blog.csdn.net/yixieling4397/article/details/79861379

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章