1、SSL是什么,为什么发送HTTPS请求时需要证书验证?

1.1 SSL:安全套接字层。是为了解决HTTP协议是明文,避免传输的数据被窃取,篡改,劫持等。

1.2 TSL:Transport Layer Security,传输层安全协议。TSL其实是SSL标准化后的产物,即SSL/TSL

实际上是一个东西。

1.3 HTTPS:HTTPS是兼容HTTP的,可以把HTTPS理解为'HTTP over TSL',即HTTPS是HTTP协议

和TSL协议的组合。

1.4 HTTPS在传输数据时,同样会先建立TCP连接,建立起TCP连接后,会建立TSL连接,这个过程可以

通过抓包查看:

1.5 SSL协议处于网络7层结构的哪一层?有的资料直接说明SSL协议处于传输层,

有的资料则说SSL协议处于传输层与应用层之间。

1.6 请求可以为HTTPS请求验证SSL证书,就像web浏览器一样,SSL验证默认是开启的,

如果证书验证失败,请求会抛出SSLError:

>>>import requests

>>>requests.get('https:xxxx.com')    #发起一个https请求

>>>requests.exceptions.SSLError: xxx

1.7 遇到请求的SSL验证,可以直接跳过不验证,将verify=False设置一下即可。

官方文档解释如下:

2、忽略警告

2.1 将验证设置忽略后,可以跳过SSL验证,但存在一个警告信息InsecureRequestWarning。

以下为忽略警告信息的方式:

总结:

1.HTTPS请求进行SSL验证或忽略SSL验证才能请求成功,忽略方式为verify=False。

2.SSL证书是由CA机构颁发的,所以安全也是要钱的

3.要完全理解HTTP协议,不能只到分辨HTTP的GET,POST等动作的程度,还要去理解7层

网络结构中每层使用的协议,以及数据传输的过程

requests发送HTTPS请求(处理SSL证书验证)的更多相关文章

  1. Python常见问题 - python3 使用requests发送HTTPS请求报certificate verify failed 错误

    当你使用 requests 发送HTTPS请求时 requests.get(url, parmas=parmas, headers=header, cookies=cookie) 出现了以下错误 HT ...

  2. iOS开发 支持https请求以及ssl证书配置(转)

    原文地址:http://blog.5ibc.net/p/100221.html 众所周知,苹果有言,从2017年开始,将屏蔽http的资源,强推https 楼主正好近日将http转为https,给还没 ...

  3. python2/3 发送https请求时,告警关闭方法

    问题: 使用Python3 requests发送HTTPS请求,已经关闭认证(verify=False)情况下,控制台会输出以下错误: InsecureRequestWarning: Unverifi ...

  4. Requests对HTTPS请求验证SSL证书

    SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发.该安全协议主 ...

  5. HTTPS请求 SSL证书验证

    import urllib2 url = "https://www.12306.cn/mormhweb/" headers = {"User-Agent": & ...

  6. Web Server 使用WebClient 发送https请求 The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel

    使用WebClient 发送https请求 使用WebClient发送请求时,并且是以https协议: WebClient webClient = new WebClient(); string re ...

  7. 使用HttpClient发送HTTPS请求以及配置Tomcat支持SSL

    这里使用的是HttpComponents-Client-4.1.2 package com.jadyer.util; import java.io.File; import java.io.FileI ...

  8. linux 测试 get 请求 跳过SSL证书验证

    Linux 下测试 get 请求: curl : curl "http://www.qq.com" # 标准输出页面内容 curl -i "http://www.qq.c ...

  9. 各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总

    各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总 一份常见的 HTTPS 站点使用的证书和数据加密技术列表,便于需要时比较参考,将持续加入新的 HTTP 站点,这里给出的信 ...

随机推荐

  1. Codeforces Round #407 (Div. 1) B. Weird journey —— dfs + 图

    题目链接:http://codeforces.com/problemset/problem/788/B B. Weird journey time limit per test 2 seconds m ...

  2. 使用grunt js进行js的链接和压缩

    1,http://nodejs.org/download/ 安装nodejs 2,配置环境变量,将nodejs的安装目录放置在Path环境变量中 3,在cmd中 npm install -g grun ...

  3. iOS 两个tableview的 瀑布流

    iOS 两个tableview的 瀑布流1. [代码]Objective-C     ////  DocViewController.m//  getrightbutton////  Created ...

  4. BestCoder7 1001 Little Pony and Permutation(hdu 4985) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4985 题目意思:有 n 个数,对于第 i 个数给出 σ(i) 的值.求出互不相交的循环的个数,并输出每 ...

  5. LA-5059(组合游戏)

    题意: 有n堆石子,分别有a1,a2,...,an个,两个游戏者轮流操作,每次可以选一堆m拿走至少一个且不超过一半的石子,谁不能拿石子就算输; 思路: a1太大打印sg表找规律,然后就是异或和了; A ...

  6. 算法实现c语言--03

    实现  mystrcpy(), mystrcmp(), mystrcat(), mystrlen() ; #include<stdio.h> #include<stdlib.h> ...

  7. 文件的打开函数第一类--fopen()

        fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式); 其中, “文件指针名”必须是被说明为FILE 类型的指针变量: “文件名”是被打开文件的 ...

  8. POJ2752(next原理理解)

    Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 15536   Ac ...

  9. vue-cli创建项目 一直downloading解决办法

    vue-cli创建项目: 1 安装node(需要npm,npm是node的包管理股工具) 2 安装cnpm 3 安装vue-cli       cnpm install vue-cli -g 4 创建 ...

  10. C#中,当鼠标移动到控件上,动态显示提示内容 ToolTip

    [背景]写了个C#的小程序,其中在Settings窗体中有些配置参数,希望在鼠标移动到对应的配置选项上,动态显示相关的说明解释内容. [解决过程]1.原先就已经知道,有些控件,是带ToolTipTex ...