Error: write EPROTO 93988952:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUM

在进行HTTPS单向认证时遇到错误'Error: write EPROTO 93988952:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUM'。实际上问题出在nginx配置文件上,未包含443端口的server配置。通过替换并修改nginx.conf文件,启用443端口并指定服务器证书路径,然后重启nginx服务,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https进行单向认证,,,,此时从浏览器或postman访问服务端,,,

在这里插入图片描述
发生报错,,, error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUM
看样子是ssl版本有问题??
实际不是,,,联网安装的nginx所附带的nginx.conf配置文件里没有443的server这一注释小节,如下所示。

在这里插入图片描述

将含有443端口服务的nginx.conf文件替换联网情况下安装nginx所附带的nginx.conf。
然后直接去443端口附近修改,,,

在这里插入图片描述

只需放开相应的注释,然后指定服务器证书的路径即可。。。
此时重启nginx。
再去postman倒腾,,,结果就OK了。。如下图所示。。。

### 解决 WRITE_EPROTO WRONG_VERSION_NUMBER 错误 WRITE_EPROTO WRONG_VERSION_NUMBER 是一种常见的 SSL/TLS 协议错误,通常发生在客户端和服务器之间的协议版本不匹配时。以下是可能的原因以及解决方案: #### 可能原因分析 1. **TLS 版本冲突** 客户端和服务端支持的 TLS 版本不同可能导致此问题。如果服务端仅支持较新的 TLS 版本(如 TLS 1.2 或更高),而客户端尝试使用旧版协议(如 TLS 1.0 或 SSLv3),则会触发该错误[^1]。 2. **加密套件不兼容** 如果双方使用的加密算法或密钥交换方法不一致,则可能会导致握手失败并抛出 `WRONG_VERSION_NUMBER` 错误[^2]。 3. **库配置不当** 使用的 SSL 库未正确编译或缺少必要的功能扩展(例如 TLS 扩展)。这可能是由于 OpenSSL 的构建选项缺失所致[^3]。 --- ### 解决方案 #### 方法一:更新 OpenSSL 和 BoringSSL 到最新版本 确保所依赖的 SSL 库是最新的稳定版本。可以通过以下命令安装最新的 OpenSSL: ```bash sudo apt-get update && sudo apt-get install libssl-dev openssl ``` 对于 BoringSSL 用户,建议从官方仓库获取源码并重新编译以应用最近的安全补丁。 #### 方法二:强制指定 TLS 版本 通过设置环境变量或者修改应用程序代码来限定最低 TLS 版本为 1.2 或以上。例如,在 Python 中可以这样实现: ```python import ssl context = ssl.create_default_context() context.options |= ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1 # 禁用低版本 TLS ``` 在 HAProxy 配置文件中也可以显式声明所需的 TLS 参数: ```plaintext frontend https-in bind *:443 ssl crt /path/to/cert.pem alpn h2,http/1.1 no-tls-v1 no-tls-v1.1 ``` #### 方法三:验证 Haproxy 支持 TLS 扩展 运行以下命令确认当前环境中启用的支持特性: ```bash haproxy -vv | grep "built with" ``` 如果没有发现对 TLS Extensions 的支持,请下载带有完整功能集的新版本重试。 #### 方法四:调试记录日志 增加详细的网络通信跟踪有助于定位具体位置发生的问题。开启 verbose logging 并查找异常行为模式: ```bash export OPENSSL_DEBUG=1; your_command_here ``` --- ### 总结 上述措施涵盖了大部分场景下修复 WRITE_EPROTO WRONG_VERSION_NUMBER 的途径。实际操作过程中需结合具体情况调整策略,并始终关注底层组件的状态及其相互作用关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@十三阿哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值