在 CentOS 上为 Tomcat 安装 SSL 证书
一 准备与前置检查
ping yourdomain 验证解析;服务器上可用 ss -tlnp | grep ':443' 或 nc -vz yourdomain 443 检查端口连通性。二 安装步骤
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/domain.pfx"
certificateKeystorePassword="YourPfxPassword"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
</Connector>
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/domain.jks"
certificateKeystorePassword="YourJksPassword"
type="RSA" />
</SSLHostConfig>
</Connector>
<Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="443" />
<web-app> 结束标签前加入:<security-constraint>
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
或使用 systemd:sudo systemctl restart tomcat(按你的实际服务名调整)。三 验证与常见问题
curl -Iv https://yourdomain 查看证书链与握手信息。ss -tlnp | grep ':443' 或 nc -vz yourdomain 443 复核。openssl pkcs12 -export \
-in server.crt -inkey server.key \
-out domain.pfx -name tomcat \
-CAfile chain.crt -caname root
然后在 Connector 中使用 certificateKeystoreType="PKCS12" 指向该 .pfx。<transport-guarantee>CONFIDENTIAL</transport-guarantee> 生效。四 进阶与可选方案
<Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeyFile="conf/server.key"
certificateFile="conf/server.crt"
certificateChainFile="conf/chain.crt"
type="RSA" />
</SSLHostConfig>
</Connector>
需安装 tomcat-native 与 OpenSSL 依赖,按官方文档编译启用。<Host> 内加入重写阀并配置规则,可实现更灵活的跳转逻辑(适合复杂场景)。