[7436:32196:0326/015716.676:ERROR:ssl_client_socket_impl.cc(891)] handshake failed; returned -1, SSL error code 1, net_error -101 [7436:32196:0326/015716.776:ERROR:ssl_client_socket_impl.cc(891)] handshake failed; returned -1, SSL error code 1, net_error -101怎么解决
时间: 2025-07-11 12:52:59 浏览: 32
<think>好的,用户遇到了SSL握手失败的问题,错误信息是“ssl_client_socket_impl.cc(992)] handshake failed; returned -1, SSL error code 1, net_error -101”。我需要根据提供的引用资料来整理解决方案。首先,这个问题通常发生在SSL/TLS握手过程中,可能的原因包括证书问题、协议版本不匹配、系统时间错误等。
根据引用[2],首先要检查证书是否有效。用户可能需要更新或安装受信任的根证书,特别是在使用自签名证书时。引用[4]提到可以通过添加`--ignore-certificate-errors`参数来忽略证书错误,但这不是长久之计,适合临时测试。
然后,引用[4]还建议调整SSL/TLS协议版本,比如启用TLS 1.2或更高版本,禁用不安全的协议如SSLv3。此外,检查系统时间和时区是否正确,因为证书的有效期依赖于此。
如果用户使用的是Python环境,可能需要更新库如requests或urllib3,或者指定证书路径。引用[3]中提到在Selenium中通过Chrome选项添加参数来忽略证书错误,并排除其他自动化相关的错误。
还需要检查防火墙或代理设置是否干扰了连接,引用[2]提到这可能也是问题原因之一。另外,确保客户端和服务端的密码套件兼容,禁用不安全的加密方式。
总结步骤应该是分点说明,包括检查证书、调整协议版本、更新时间、更新库、添加启动参数、检查防火墙等。同时生成相关问题,帮助用户深入理解可能的相关问题。</think>以下是针对SSL握手失败错误(ssl_client_socket_impl.cc(992) handshake failed)的解决方案:
---
### 逐步解决方案
1. **检查证书有效性**
确保服务器证书有效且未过期。如果是自签名证书,需在客户端安装根证书。Python代码中可指定证书路径:
```python
requests.get(url, verify='/path/to/certificate.pem')
```
2. **调整SSL/TLS协议版本**
在客户端代码中强制使用TLS 1.2或更高版本(避免SSLv3等不安全协议):
```python
import ssl
context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH)
context.minimum_version = ssl.TLSVersion.TLSv1_2
```
3. **忽略证书错误(仅限测试环境)**
添加浏览器启动参数临时绕过验证(如Selenium)[^4]:
```python
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
driver = webdriver.Chrome(options=options)
```
4. **同步系统时间**
SSL证书有效性依赖系统时间。若时间误差超过证书有效期,会触发握手失败。需校准系统时间至精确值。
5. **更新依赖库**
升级Python库(如`requests`, `urllib3`, `openssl`)至最新版本,修复已知兼容性问题:
```bash
pip install --upgrade requests urllib3
```
6. **检查防火墙/代理设置**
网络中间件可能干扰SSL握手。尝试关闭防火墙或代理,或配置客户端信任代理证书[^2]。
---
### 关键配置对比表
| 错误场景 | 解决方案 | 适用环境 |
|------------------------|----------------------------------|---------------|
| 自签名证书无效 | 添加`--ignore-certificate-errors` | 测试环境 |
| 协议版本不匹配 | 强制使用TLS 1.2+ | 生产/测试环境 |
| 系统时间偏差 | 校准至网络标准时间 | 所有环境 |
| 旧版OpenSSL库 | 升级`pyOpenSSL`和`cryptography` | Python环境 |
---
阅读全文
相关推荐



















