Debian系统中Tomcat的SSL证书如何安装
导读:Debian系统Tomcat安装与配置SSL证书 一 准备与证书获取 安装基础组件(如尚未安装):sudo apt update && sudo apt install tomcat9 openssl。确保 Tomcat...
Debian系统Tomcat安装与配置SSL证书
一 准备与证书获取
- 安装基础组件(如尚未安装):sudo apt update & & sudo apt install tomcat9 openssl。确保 Tomcat 正常运行(systemctl status tomcat9)。
- 获取证书(两种常见方式):
- 使用 Let’s Encrypt:sudo apt install certbot;获取证书时建议用独立模式避免与现有 Web 服务端口冲突:sudo certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com。证书默认位于 /etc/letsencrypt/live/yourdomain.com/,包含 fullchain.pem 与 privkey.pem。
- 自签名(仅测试):sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/tomcat-selfsigned.key -out /etc/ssl/certs/tomcat-selfsigned.crt。
二 方式一 使用JKS密钥库部署(通用、与Java生态兼容好)
- 生成密钥库并导入证书链与私钥(示例口令请自定义并妥善保存):
- 生成密钥对与 JKS:keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/ssl/private/tomcat.keystore -storepass changeit -keypass changeit -validity 365
- 导入中间证书(如有):keytool -import -alias intermed -keystore /etc/ssl/private/tomcat.keystore -trustcacerts -file chain.crt
- 导入域名证书:keytool -import -alias tomcat -keystore /etc/ssl/private/tomcat.keystore -file certificate.crt
- 配置 Tomcat(/etc/tomcat9/server.xml):
- 将 HTTP 连接器的 redirectPort 改为 8443。
- 启用 SSL Connector(推荐端口 8443):
- 重启与验证:sudo systemctl restart tomcat9;访问 https://yourdomain.com:8443。
三 方式二 直接使用PEM证书与私钥(Tomcat 8.5+/9 的 SSLHostConfig,更简洁)
- 准备证书文件:将 fullchain.pem(证书链)与 privkey.pem(私钥)放置于 /etc/letsencrypt/live/yourdomain.com/,并确保 tomcat 用户可读。
- 配置 Tomcat(/etc/tomcat9/server.xml):
- 将 HTTP 连接器的 redirectPort 改为 8443。
- 启用 SSLHostConfig(推荐端口 8443):
- 重启与验证:sudo systemctl restart tomcat9;访问 https://yourdomain.com:8443。
- 说明:若使用 NIO2/APR 或需要双向认证,可在 SSLHostConfig 中进一步设置 protocol、ciphers、clientAuth 等参数。
四 HTTP自动跳转HTTPS与防火墙
- HTTP 跳转(在 内、对应 中增加):
- 防火墙放行:sudo ufw allow 8443/tcp(如使用 UFW);云服务器还需在安全组放行 8443/TCP。
五 证书续期与常见问题
- 自动续期与Tomcat热加载:
- 测试续期:sudo certbot renew --dry-run。
- 部署后自动重启 Tomcat(推荐在续期钩子中重启):
sudo mkdir -p /etc/letsencrypt/renewal-hooks/deploy
echo ‘systemctl restart tomcat9’ | sudo tee /etc/letsencrypt/renewal-hooks/deploy/tomcat-restart.sh
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/tomcat-restart.sh
- 常见问题排查:
- 权限问题:确保 /etc/letsencrypt/ 及证书文件对 tomcat 用户可读(chmod 644,必要时 chown tomcat:tomcat)。
- 端口占用:检查 8443 是否被占用(ss -tlnp | grep 8443),或与其他服务冲突。
- 配置语法:Connector 与 SSLHostConfig 的属性名与层级需与所用 Tomcat 版本匹配;修改 server.xml 前先备份。
- 证书链完整:使用 PEM 直配时,fullchain.pem 应包含服务器证书与中间证书;使用 JKS 时确保中间证书已导入。
- 浏览器告警:自签名证书仅用于测试,生产环境请使用受信任 CA 签发的证书。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian系统中Tomcat的SSL证书如何安装
本文地址: https://pptw.com/jishu/750342.html
