在CentOS上为Tomcat配置SSL,你需要遵循以下步骤:
安装Java(如果尚未安装): CentOS 7及更高版本默认安装了Java。你可以通过运行以下命令检查Java版本:
java -version
如果没有安装Java,请使用以下命令安装:
sudo yum install java-1.8.0-openjdk-devel
获取SSL证书: 你可以从证书颁发机构(CA)购买SSL证书,或者使用Let’s Encrypt免费获取。以下是使用Certbot从Let’s Encrypt获取证书的示例:
sudo yum install certbot
sudo certbot certonly --standalone --http-01-port=80 -d yourdomain.com -d www.yourdomain.com
成功后,你将在/etc/letsencrypt/live/yourdomain.com/目录下获得证书文件(fullchain.pem)和私钥文件(privkey.pem)。
创建Java KeyStore: 将证书和私钥转换为Java KeyStore格式:
sudo keytool -importkeystore -deststorepass your_keystore_password -destkeypass your_key_password -destkeystore /etc/tomcat/keystore.jks -srckeystore /etc/letsencrypt/live/yourdomain.com/fullchain.pem -srcstoretype PEM -alias yourdomain.com -srcstorepass your_certificate_password -srckeypass your_private_key_password
请确保使用正确的密码替换your_keystore_password、your_key_password、your_certificate_password和your_private_key_password。
配置Tomcat:
编辑Tomcat的配置文件/etc/tomcat/server.xml,找到以下注释掉的SSL连接器配置:
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                     type="RSA" />
    </SSLHostConfig>
</Connector>
-->
取消注释并修改为以下内容:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="/etc/tomcat/keystore.jks"
                     type="RSA" certificateKeystorePassword="your_keystore_password" />
    </SSLHostConfig>
</Connector>
请确保使用正确的密码替换your_keystore_password。
重启Tomcat:
sudo systemctl restart tomcat
更新防火墙设置: 如果你使用的是firewalld,请运行以下命令以允许HTTPS流量:
sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp
sudo firewall-cmd --reload
现在,你应该能够通过https://yourdomain.com:8443访问你的Tomcat应用程序,并且浏览器将显示安全连接。