HTTPS请求 SSL证书验证

Posted AlamZ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPS请求 SSL证书验证相关的知识,希望对你有一定的参考价值。

import urllib2

url = "https://www.12306.cn/mormhweb/"

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

request = urllib2.Request(url, headers = headers)

response = urllib2.urlopen(request)

print response.read()

  

运行结果:

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

所以,如果以后遇到这种网站,我们需要单独处理SSL证书,让程序忽略SSL证书验证错误,即可正常访问。

import urllib
import urllib2
# 1. 导入Python SSL处理模块
import ssl

# 2. 表示忽略未经核实的SSL证书认证
context = ssl._create_unverified_context()

url = "https://www.12306.cn/mormhweb/"

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

request = urllib2.Request(url, headers = headers)

# 3. 在urlopen()方法里 指明添加 context 参数
response = urllib2.urlopen(request, context = context)

print response.read()

  

以上是关于HTTPS请求 SSL证书验证的主要内容,如果未能解决你的问题,请参考以下文章

HTTPS请求 SSL证书验证

微信小程序要求HTTPS,如何选择SSL证书?

Python-requests的使用 - SSL证书验证

不支持SSL时对HTTPS请求进行规范处理

[接口测试_B] 10 requests处理SSL证书验证

用java做一个httpClient 发送https 的get请求,需要证书验证的那种,求大神指点一下!