1. 安装Tomcat
在Debian系统上,首先通过APT包管理器安装Tomcat(以Tomcat 9为例):
sudo apt update
sudo apt install tomcat9
安装完成后,Tomcat会自动启动,可通过systemctl status tomcat9验证状态。
2. 生成SSL证书
SSL证书用于加密通信,可选择自签名证书(测试环境)或CA颁发的证书(生产环境)。
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/tomcat-selfsigned.key \
-out /etc/ssl/certs/tomcat-selfsigned.crt
执行过程中需填写证书信息(如国家、组织名称、域名等),**Common Name(CN)**需与服务器域名或IP一致(测试时可填localhost)。3. 配置Tomcat使用SSL
编辑Tomcat的主配置文件/etc/tomcat9/server.xml,找到并修改SSL连接器配置(通常位于文件末尾的</Service>标签前):
<Connector
port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="/etc/ssl/private/tomcat-selfsigned.jks"
type="RSA"
certificateKeystorePassword="your_keystore_password"/>
</SSLHostConfig>
</Connector>
关键参数说明:
port:SSL监听端口(默认8443,可修改为443或其他端口);certificateKeystoreFile:Java密钥库(JKS)文件路径,需包含证书和私钥;certificateKeystorePassword:密钥库密码(若未设置,Tomcat默认使用changeit)。注意:若使用自签名证书,需将其转换为JKS格式(Tomcat默认支持的密钥库类型):
sudo keytool -import -alias tomcat -file /etc/ssl/certs/tomcat-selfsigned.crt \
-keystore /etc/ssl/private/tomcat-selfsigned.jks \
-storepass your_keystore_password
(若私钥为单独文件,可使用openssl pkcs12命令将.key和.crt合并为PKCS12格式,再转换为JKS)。
4. (可选)配置HTTP重定向到HTTPS
为强制所有流量使用HTTPS,需修改HTTP连接器并添加重定向规则:
/etc/tomcat9/conf/server.xml,找到默认的HTTP连接器(端口8080),添加redirectPort="8443":<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
/etc/tomcat9/webapps/manager/META-INF/context.xml(或其他Web应用的context.xml),添加安全约束:<Context>
<Valve className="org.apache.catalina.valves.RemoteIpValve"/>
<SecurityConstraint>
<WebResourceCollection>
<WebResourceName>Protected Context</WebResourceName>
<UrlPattern>/*</UrlPattern>
</WebResourceCollection>
<UserdataConstraint>
<TransportGuarantee>CONFIDENTIAL</TransportGuarantee>
</UserdataConstraint>
</SecurityConstraint>
</Context>
保存后,所有访问http://your_server:8080的请求将自动跳转到https://your_server:8443。5. 重启Tomcat应用配置
修改配置文件后,需重启Tomcat服务使更改生效:
sudo systemctl restart tomcat9
可通过systemctl status tomcat9确认服务是否正常启动。
6. 验证SSL配置
打开浏览器,访问https://your_server_ip:8443(若配置了重定向,可直接访问http://your_server_ip:8080,会自动跳转)。
7. (可选)使用Let’s Encrypt获取免费CA证书
生产环境建议使用Let’s Encrypt等CA颁发的证书,可通过Certbot工具自动化流程:
sudo apt install certbot python3-certbot-tomcat
your_domain.com为实际域名):sudo certbot --tomcat -d your_domain.com -d www.your_domain.com
server.xml中,并重启Tomcat。