这个错误 SSL_ERROR_RX_RECORD_TOO_LONG 非常经典,它意味着客户端(你的浏览器)尝试用 HTTPS(SSL/TLS)协议与服务器通信,但服务器返回的却是非 SSL 的明文数据。
结合你“做了 DNAT”且“能 telnet 通”的情况,问题几乎可以确定是:DNAT 映射的端口是 8080,但你在浏览器里使用了 https:// 去访问,而服务器实际运行的是 HTTP 服务(或者 TCP 层服务)。
| 检查项 | 你的情况 | 结论 |
|---|---|---|
| 访问方式 | https://1.1.1.2:8080 | 浏览器用 SSL/TLS 握手 |
| 服务器服务 | 模拟器里的服务器,telnet 通 | 服务器可能是 HTTP 或其他 TCP 服务,没有配置 SSL |
| 冲突结果 | 服务器返回明文数据(如 "HTTP/1.1 200 OK") | 浏览器解析为 SSL 记录失败,报 RECORD_TOO_LONG |
将浏览器地址栏的 https:// 改为 http://。
如果不确定模拟器里的服务器到底是什么服务,可以用 curl 或 telnet 看一眼响应。
用 curl 查看响应头(推荐):
用 telnet 手动请求:
http:// 访问。如果你确实需要让这个服务走 HTTPS,有几种方式:
在模拟器里的服务器上配置 SSL
如果服务器是 nginx、tomcat 等,需要配置 SSL 证书并监听 443 或 8080 的 HTTPS 服务。
配置完成后,再用 https://1.1.1.2:8080 访问。
在 DNAT 之前加一层 SSL 卸载
在路由器或防火墙上配置 SSL 卸载(SSL offload),把外部 HTTPS 流量解密后转成 HTTP 发给后端服务器。
这需要设备支持,且配置较复杂。
改用端口转发,把 443 映射成后端的 HTTP 服务
如果只是想通过 8080 端口访问 HTTP 服务,直接用 http:// 即可,不需要 SSL。
确认你的 DNAT 规则是否正确映射了端口。
假设你的模拟器服务器 IP 是 192.168.100.10,服务端口是 80。
正确 DNAT 示例(将公网/本机 8080 映射到内网 80):
http://1.1.1.2:8080 访问。在界面打开显示建立安全连接失败
在界面打开显示建立安全连接失败
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明