在Ubuntu系统下为JSP应用配置SSL证书,通常需要以下几个步骤:
sudo apt-get update
sudo apt-get install tomcat9
首先,安装Certbot和Nginx插件:
sudo apt-get install certbot python3-certbot-nginx
然后,运行Certbot以获取SSL证书:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按照提示操作,Certbot会自动配置Nginx并生成SSL证书。
sudo cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem /opt/tomcat/conf/yourdomain.com.crt
sudo cp /etc/letsencrypt/live/yourdomain.com/privkey.pem /opt/tomcat/conf/yourdomain.com.key
接下来,编辑Tomcat的配置文件server.xml:
sudo nano /opt/tomcat/conf/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="/opt/tomcat/conf/yourdomain.com.jks"
type="RSA" certificateKeystorePassword="changeit" />
</SSLHostConfig>
</Connector>
保存并退出。
sudo apt-get install portecle
使用Portecle导入yourdomain.com.crt和yourdomain.com.key文件,并将其导出为yourdomain.com.jks。
sudo systemctl restart tomcat9
现在,你的JSP应用应该可以通过HTTPS访问了。请注意,Certbot证书有效期为90天,需要定期更新。可以使用以下命令自动更新证书:
sudo certbot renew --dry-run
如果没有问题,运行以下命令完成更新:
sudo certbot renew