urllib2報(bào)錯(cuò)[SSL:CERTIFICATE_VERIFY_FAILED]

在python中使用urllib2庫(kù)去訪問(wèn)一個(gè)自簽名的網(wǎng)站時(shí)诞仓,會(huì)出現(xiàn)如下報(bào)錯(cuò): urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

出現(xiàn)以上錯(cuò)誤的原因是因?yàn)閜ython的版本問(wèn)題挤聘,在python2.6(含2.6)以下版本中蚂踊,在訪問(wèn)HTTPS的網(wǎng)站時(shí)霸旗,TLS握手期間不會(huì)檢查服務(wù)器X509的證書(shū)簽名是否是CA的可信任根證書(shū)颂跨。這種局面在python2.7 3.4 和 3.5版本中得到了修改似炎。

所以关贵,以下代碼在python2.6版本中測(cè)試是完全沒(méi)有問(wèn)題的


import json
import urllib
import urllib2

url='https://www.20150509.cn:1559'

def test():
  
  pre_data = [{"client":"local", "tgt":"*", "fun":"test.ping"}]

  json_data = json.dumps(pre_data)
  
  header = {"Content-Type":"application/json", "Accept":"application/json", "X-Auth-Token":"b91e7uj86g4f97cc**********b92778ujh4kedf"}

  request = urllib2.Request(url, json_data, header)

  response = urllib2.urlopen(request)

  html = response.read()

  print html


if __name__=="__main__":
  test()

運(yùn)行測(cè)試

shell> python sa.py 
{"return": [{"vm3.salt.com": true, "vm2.salt.com": true, "ph1.salt.com": true, "ph2.salt.com": true, "vm1.salt.com": true, "vm4.salt.com": true, "localhost": true, "vm7.salt.com": true}]}


在python2.7+版本就會(huì)報(bào)上述錯(cuò)誤

shell> python sa.py 
Traceback (most recent call last):
  File "sa.py", line 25, in <module>
    test()
  File "sa.py", line 17, in test
    response = urllib2.urlopen(request)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 431, in open
    response = self._open(req, data)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 449, in _open
    '_open', req)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1240, in https_open
    context=self._context)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1197, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

解決方法:

import json
import urllib
import urllib2
import ssl   #add line 1

ssl._create_default_https_context = ssl._create_unverified_context  #add line 2

url='https://www.20150509.cn:1559'

def test():
  
  pre_data = [{"client":"local", "tgt":"*", "fun":"test.ping"}]

  json_data = json.dumps(pre_data)
  
  header = {"Content-Type":"application/json", "Accept":"application/json", "X-Auth-Token":"b91e7uj86g4f97cc**********b92778ujh4kedf"}

  request = urllib2.Request(url, json_data, header)

  response = urllib2.urlopen(request)

  html = response.read()

  print html


if __name__=="__main__":
  test()


參考文檔:

http://https://www.python.org/dev/peps/pep-0476/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遇骑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子揖曾,更是在濱河造成了極大的恐慌落萎,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炭剪,死亡現(xiàn)場(chǎng)離奇詭異练链,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)奴拦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)媒鼓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人错妖,你說(shuō)我怎么就攤上這事绿鸣。” “怎么了暂氯?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵枚驻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我株旷,道長(zhǎng)再登,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任晾剖,我火速辦了婚禮锉矢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘齿尽。我一直安慰自己沽损,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布循头。 她就那樣靜靜地躺著绵估,像睡著了一般炎疆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上国裳,一...
    開(kāi)封第一講書(shū)人閱讀 49,842評(píng)論 1 290
  • 那天形入,我揣著相機(jī)與錄音,去河邊找鬼缝左。 笑死亿遂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的渺杉。 我是一名探鬼主播蛇数,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼是越!你這毒婦竟也來(lái)了耳舅?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤倚评,失蹤者是張志新(化名)和其女友劉穎浦徊,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蔓纠,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辑畦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年吗蚌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腿倚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蚯妇,死狀恐怖敷燎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情箩言,我是刑警寧澤硬贯,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站陨收,受9級(jí)特大地震影響饭豹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜务漩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一拄衰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饵骨,春花似錦翘悉、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)老赤。三九已至,卻和暖如春制市,著一層夾襖步出監(jiān)牢的瞬間抬旺,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工息堂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嚷狞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓荣堰,卻偏偏與公主長(zhǎng)得像床未,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子振坚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,454評(píng)論 6 428
  • 前言 Python的創(chuàng)始人為Guido van Rossum薇搁。1989年圣誕節(jié)期間,在阿姆斯特丹渡八,Guido為了打...
    依依玖玥閱讀 3,565評(píng)論 6 37
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,796評(píng)論 25 707
  • 說(shuō)什么我也不會(huì)將就的啃洋!一生一世一雙人,相思相望不相親屎鳍。 都說(shuō)在校園里的愛(ài)情走不到天荒地老宏娄,但我信,校園里的愛(ài)情還是...
    小花孟閱讀 159評(píng)論 0 1
  • 同學(xué)們逮壁,老師們孵坚。大家好。 大名人高爾基曾經(jīng)說(shuō)過(guò):書(shū)籍是人類(lèi)進(jìn)步的階梯窥淆,人類(lèi)的進(jìn)步卖宠,都是由看書(shū)才可以進(jìn)步的,最近有一...
    百合花中哥哥閱讀 1,589評(píng)論 0 0