Tomcat配置SSL后出现ERR_CONNECTION_TIMED_OUT问题求助
配置Java+Angular应用SSL时遇
ERR_CONNECTION_TIMED_OUT问题 我在为Java+Angular应用配置SSL时,按以下步骤操作后,通过浏览器访问HTTPS出现ERR_CONNECTION_TIMED_OUT错误,但HTTP可正常访问,已排除网络问题。
操作步骤
- 生成.jks密钥库及CSR文件
执行以下命令生成myservername.jks和myservername.csr文件:
keytool -genkey -alias myservername -keyalg RSA -keysize 2048 -keystore myservername.jks -dname "CN=myservername, O=MyOrg, L=, ST=, C=" && keytool -certreq -alias myservername -file myservername.csr -keystore myservername.jks
- 验证密钥库初始内容
执行命令keytool -list -keystore myservername.jks,输出如下:
myservername, Oct 20, 2023, PrivateKeyEntry, Certificate fingerprint (SHA-256): xxxxxxxx
获取并保存服务器证书
将myservername.csr发送给证书机构,收到返回的证书内容后保存到myservername.cer文件。导出根证书与中间证书
证书链路径为rootcertname > intermediatecertname > myservername,分别导出根证书rootcertname.cer和中间证书intermediatecertname.cer。导入证书到密钥库
执行以下命令将中间证书和根证书导入密钥库:
keytool -keystore myservername.jks -import -alias intermediate -trustcacerts -file intermediatecertname.cer keytool -keystore myservername.jks -import -alias root -trustcacerts -file rootcertname.cer
再次执行 keytool -list -keystore myservername.jks,确认密钥库包含私钥、根证书和中间证书。
- 配置Tomcat SSL连接器
将myservername.jks复制到Tomcat的conf目录,修改server.xml中的Connector配置:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="conf\myservername.jks" keystorePass="mypass" keystoreType="JKS" />
排查方向
- 端口监听验证:执行
netstat -ano | findstr :8443(Windows)或netstat -tulpn | grep 8443(Linux),确认8443端口是否被Tomcat进程占用。 - Connector配置修正:
- 路径使用正斜杠
/或双反斜杠\\,避免Windows系统路径解析错误; - 替换协议为
org.apache.coyote.http11.Http11NioProtocol,提升SSL兼容性; - 添加
sslEnabledProtocols="TLSv1.2,TLSv1.3"明确指定安全协议版本。
- 路径使用正斜杠
- 证书链完整性检查:执行
keytool -printcert -file myservername.cer,确认服务器证书包含完整链信息;或重新导入服务器证书到myservername别名下:keytool -import -alias myservername -trustcacerts -file myservername.cer -keystore myservername.jks。 - 本地防火墙放行:确认服务器防火墙允许8443端口的入站连接。
- Tomcat日志排查:查看
logs/catalina.out或localhost.log,检查启动时是否有SSL相关的错误(如密钥库密码错误、证书无效等)。
内容的提问来源于stack exchange,提问作者jkfe
相关产品推荐
相关产品推荐

