zoukankan      html  css  js  c++  java
  • Requests对HTTPS请求验证SSL证书

    SSL证书通过在客户端浏览器Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。由于SSL技术已建立到所有主要的浏览器WEB服务器程序中,因此,仅需安装服务器证书就可以激活该功能了)。即通过它可以激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露。保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。

    Requests可以为HTTPS请求验证SSL证书,就像web浏览器一样。要想检查某个主机的SSL证书,你可以使用 verify 参数:

    requests.get('https://kennethreitz.com', verify=True)

    在该域名上我没有设置SSL,所以失败了。但Github设置了SSL:

    requests.get('https://github.com', verify=True)

    如果你将 verify 设置为False,Requests也能忽略对SSL证书的验证

    requests.get('https://kennethreitz.com', verify=False)

    默认情况下, verify 是设置为True的。选项 verify 仅应用于主机证书。

    你也可以指定一个本地证书用作客户端证书,可以是单个文件(包含密钥和证书)或一个包含两个文件路径的元组:

    requests.get('https://kennethreitz.com', cert=('/path/server.crt', '/path/key'))

    如果你指定了一个错误路径或一个无效的证书:

    requests.get('https://kennethreitz.com', cert='/wrong_path/server.pem')
    SSLError: [Errno 336265225] _ssl.c:347: error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib


  • 相关阅读:
    [mysql] information_schema数据库表
    Linux 进程操作_12
    Linux 标准输入输出_11
    apache2
    poj 3083 Children of the Candy Corn 夜
    poj 2151 Check the difficulty of problems 夜
    poj 3274 Gold Balanced Lineup 夜
    poj 3414 Pots 夜
    poj Finicky Grazers 3184 夜
    poj 3253 Fence Repair 夜
  • 原文地址:https://www.cnblogs.com/fanjc/p/9909248.html
Copyright © 2011-2022 走看看