python 3.5中的ssl.match_hostname()函数

backports.ssl_match_hostname的Python项目详细描述



来自python 3.7的ssl.match_hostname()函数
=========


如果检查连接到的服务器返回的证书中的主机名,则安全套接字层实际上是*secure*

并验证它是否与您试图访问的主机名相匹配。


单独实现可能有点困难。
因此python 3.2标准库中的“ssl”包现在包含一个用于执行此检查的“match\u hostname()”函数,而不是要求每个应用程序分别执行检查。


用户
使用早期版本的python。
只需将此分发作为包的依赖项,
,然后按如下方式使用它:


from backports.ssl\u match\u hostname import match\u hostname,certificateerror
[…]
ssl sock=ssl.wrap\u socket(sock,ssl\u version=ssl.protocol\u sslv23,
cert_reqs=ssl.cert_required,ca_certs=…)
尝试:
匹配主机名(sslsock.getpeercert(),hostname)
除了certificateerror,ce:



brandon craig rhodes只是此发行版的打包程序;
里面的实际代码来自python 3.7,对
可移植性做了一些小的更改。



从python 2.6开始,“`ssl`”包含在python标准库中,因此不需要单独安装。

_` ssl模块`::https://pypi.python.org/pypi/ssl


history
----

*此函数在python-3.2中引入
*已为python-3.4a 1更新cve
(backports-ssl_match_hostname-3.4.0.1)
*已从rfc2818更新到rfc 6125,以修复python-3.3和python-3.4a5
(backports-ssl\u match\u hostname-3.4.0.2)
*在python-3.5中更新了它,以处理serveraltname字段中的ipaddress
(如果还从pypi安装
ipaddress库,backports.ssl\u match\u hostname将执行此操作)。
*在python-3.7中更新了它,以处理不带ipaddress库和ipaddress库的ipaddress。放弃了对部分通配符的支持。_` ipaddress模块`::https://pypi.python.org/pypi/ipaddress

…_ rfc2818:http://tools.ietf.org/html/rfc2818.html

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么参数。getType()。isInstance(HttpServletRequest.class)返回值为false,但use“==”为true   使用Java的文本文件中的简单列表   linux Java创建具有特定所有者(用户/组)的文件和目录   java我试图解析一个文本文件,以计数唯一字符串的数量,并打印一些关于这些字符串的信息   雅加达ee如何使用JavaEE6@Resource注释   java从数据库中获取所有值,并将其存储在字符串数组中   java需要ArrayList中的单个数组   java变量id可能未使用lombok初始化Spring引导控制器   JavaS3客户端。读取超过文件大小时的GetObject行为   java在另一个活动列表视图中显示JSONObject   java spring引导fat jar注册到带有奇怪端口的eureka   java如何与mongoDB建立Android Studio连接?   java LinkedIn OAuth2/oauth/v2/accessToken响应未返回“令牌类型”   java如何在jtree中只列出非隐藏和非系统文件   Mybatis批量将Java BigDecimal插入SQL Server decimal(18,2)无法正常工作   java Hibernate Criteria Builder:如何按可为空的实体属性进行筛选?   如果涉及方法内变量的范围,python与java是否不同?   java如何实现web服务客户端,该客户端通过基于NTLM身份验证的身份验证连接到外部web服务   java使Jackson在反序列化期间无法将double转换为int