check_hostname 需要 server_hostname 作为参数 是什么意思
时间: 2023-05-30 19:02:52 浏览: 194
check_hostname 是一个用于验证 SSL/TLS 证书主机名的选项,如果设置为 True,则会验证主机名,否则不会。server_hostname 参数是用于指定 SSL/TLS 证书中的主机名,用于验证证书是否属于期望的主机名。如果证书中的主机名与指定的 server_hostname 不匹配,则会引发一个 SSLCertificateError 异常。简单来说,check_hostname 和 server_hostname 是一起使用的,用于确保 SSL/TLS 通信的安全性。
相关问题
ValueError: check_hostname需要server_hostname
这个错误通常是由于使用了一个过时的Python版本或urllib版本引起的。在Python 2.x中,`HTTPSConnection`类的`check_hostname`参数默认为`True`,而在Python 3.x中默认为`False`。如果使用了一个过时的Python版本或urllib版本,并且没有显式指定`server_hostname`参数,则可能会出现这个错误。
解决这个问题的方法是在创建`HTTPSConnection`对象时显式指定`server_hostname`参数。例如,可以将代码中的:
```python
conn = http.client.HTTPSConnection(host)
```
修改为:
```python
conn = http.client.HTTPSConnection(host, timeout=10, context=ssl.create_default_context(), server_hostname=host)
```
这里将`server_hostname`参数设置为了`host`,即连接的主机名,这样就能够解决`check_hostname`参数缺失的问题。
如果仍然出现这个错误,可能是由于使用的Python或urllib版本过于老旧。建议升级到最新版本的Python和urllib库,以确保不会出现这样的问题。
check_hostname requires server_hostname
回答: "check_hostname requires server_hostname"错误通常是由于使用了旧版本的urllib3库引起的。在Python 3.4和2.7.9中,SSLContext对象上有一个check_hostname属性,用于在do_handshake期间检查主机名。而urllib3库在处理检查主机名时依赖于这个属性。然而,在urllib3的1.26.4版本中存在一个错误,导致无法正确处理check_hostname属性。这个问题可以通过检测SSLContext对象是否具有check_hostname属性来解决。另外,确保将主机名作为SSLContext().wrap_socket(server_name=)的一部分传递也是解决问题的关键。请确保你使用的是最新版本的urllib3库,或者尝试升级到最新版本的Anaconda来解决这个问题。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* [check_hostname requires server_hostname](https://blog.csdn.net/qq_19309473/article/details/116963644)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Anaconda Navigator 启动 报错check_hostname requires server_hostname 全网解决方案汇总](https://blog.csdn.net/qq_33957603/article/details/120815639)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]