【python入门】Anaconda check_hostname requires server_hostname
anacond 或python3 报check_hostname requires server_hostname错误
在anaconda启动过程中提示如下错误
或者你可以在python3
中看到类似的错误
错误解析
出现问题的主要原因是Urllib3 的 1.26.4 版本中存在一个错误。
在 Python 3.4 和 2.7.9 中,SSLContext 上有一个 check_hostname
属性,它将让 SSLContext 实例处理检查 do_handshake 中的主机名。urllib3 在可能的情况下依靠它而不是自己进行检查会很好。我认为这与将 SSLContext 用作 TLS 内容的”bag of configuration”的其他内容相得益彰。这可以通过确定 SSLContext 对象是否具有 check_hostname 属性来检测。有一个缺点,这依赖于将主机名作为 SSLContext().wrap_socket(server_name=)
的一部分传递。最初这仅在 OpenSSL 启用了 SNI 时才有效。但是即使未启用 SNI,Python 3.4.3 和 2.7.9 也会接受 server_name。
解决方案
1. URLLIB3 降低到1.25.8以下urllib3 == 1.25.8
2. 请求方法加验证=假参数
1 | response = requests.request('GET', 'http://xxx.xxxx.com', verify=False) |
直接运行会报如下警告:
1 | InsecureRequestWarning:正在发出未经验证的 HTTPS 请求。强烈建议添加证书验证。请参阅:https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning, |
3. 在请求请求前,添加如下代码,即可解决以上警告
1 | Urllib3.disable_warnings() 或 Requests.Packages.urllib3.disable_warnings() |
4. 关掉代理
系列文章
- 【python入门】Anaconda安装(配置python环境)
- 【python入门】Anaconda check_hostname requires server_hostname
- 【python入门】liunx下远程anaconda 搭建/构建环境,连接,移植/拷贝环境
- 【python入门】Python3 获取任意贴吧 最新帖子制作词云图存储为markdown
参考
- nginx配置禁特定路径下的反向代理
- nginx配置禁止访问目录或禁止访问目录下的文件
- nginx跨域处理
- 带你深入了解nginx基本登录认证(包含配置步骤)
- 使用htpasswd生成密码
- 使用openssl生成密码
- 使用python生成密码
- 你的nginx登录认证安全吗?
- 配置http基本验证(Basic Auth)
- Centos安装htpasswd_Nginx中使用htpasswd
- 带你深入了解nginx基本登录认证(包含所有配置步骤和深度解析)
- 带你深入了解nginx基本登录认证:使用htpasswd生成密码
- 带你深入了解nginx基本登录认证:使用openssl生成密码
- 带你深入了解nginx基本登录认证:使用python生成密码