TC服务器SSL证书错误求助:跨浏览器及VM内访问异常
解决VirtualBox中TC的SSL连接错误问题
你遇到的SSL_ERROR_RX_RECORD_TOO_LONG(Firefox)和ERR_SSL_PROTOCOL_ERROR(Chrome)这类错误,大概率和SSL协议不匹配、端口混用或者TC的服务配置出问题有关——而且你虚拟机内访问也报错,确实和主机升级Win10没啥关系,给你几个实用的排查方向:
先查端口和协议的对应关系
这个错误最常见的诱因就是「发错端口」:比如把HTTPS请求发到了HTTP端口,或者反过来。你可以这么操作:- 找到TC安装目录下的
conf/server.xml配置文件 - 翻到
<Connector>节点,仔细核对port和protocol的匹配性:- HTTP协议的节点,
protocol一般是org.apache.coyote.http11.Http11NioProtocol,默认端口8111 - HTTPS协议的节点,会带
SSLEnabled="true",protocol会包含SSL字样,默认端口8114
- HTTP协议的节点,
- 如果你访问时用了
https://<虚拟机IP>:8111(但8111是HTTP端口),或者http://<虚拟机IP>:8114(8114是HTTPS端口),肯定会触发这类错误。
- 找到TC安装目录下的
验证TC的SSL证书配置
升级TC后有可能证书配置被重置或者损坏:- 先确认TC是否配置了有效的SSL证书(自签名或正式证书都行)
- 要是用的自签名证书,虚拟机里的浏览器有没有信任它?(不过这个一般报「证书不可信」,不是协议错误,但也顺手排查下)
- 可以临时禁用HTTPS测试:把
server.xml里HTTPS的<Connector>节点注释掉,重启TC服务,用HTTP访问试试能不能正常打开。
检查VirtualBox网络设置(虽然虚拟机内访问也错,但还是排除下)
- 如果用的是NAT模式,看看端口转发规则是不是搞反了——比如把主机的8114(HTTPS)转发到了虚拟机的8111(HTTP)
- 切换到桥接模式,直接用虚拟机的局域网IP访问,排除端口转发的干扰。
扒一扒TC的日志文件
日志里藏着最真实的错误原因:- 打开TC安装目录下的
logs/teamcity-server.log或者catalina.log - 找服务启动时的SSL相关报错——比如证书加载失败、端口被占用、SSL协议版本不兼容这些,都会导致TC没法正常监听SSL连接。
- 打开TC安装目录下的
重置TC的网络配置试试
如果以上都没搞定,就来个「大招」:- 先停掉TC服务
- 备份好
server.xml,然后替换成对应TC版本的默认配置文件(可以从安装包或者解压后的默认文件里找) - 重启TC,用默认端口和协议访问测试。
另外提一句:如果TC是TeamCity的话,升级时要注意旧版本的SSL配置有没有被正确迁移到新版本,有时候升级脚本会跳过自定义配置,导致服务跑不起来。
内容的提问来源于stack exchange,提问作者Seekeer
相关产品推荐
相关产品推荐

