在Debian上為Tomcat配置SSL證書主要有兩種方式:使用自簽名證書或Let’s Encrypt免費證書,以下是具體步驟:
安裝依賴工具
sudo apt update && sudo apt install tomcat9 openssl
生成自簽名證書
sudo openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 \
-keyout /etc/tomcat9/tomcat.key -out /etc/tomcat9/tomcat.crt
創建密鑰庫(JKS格式)
sudo keytool -import -alias tomcat -file /etc/tomcat9/tomcat.crt \
-keyfile /etc/tomcat9/tomcat.key -keystore /etc/tomcat9/keystore.jks \
-storepass 123456 -noprompt
(密碼需替換為實際值,若需雙向認證可添加客戶端證書)
配置Tomcat
編輯/etc/tomcat9/server.xml,找到或添加以下配置:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" keystoreFile="/etc/tomcat9/keystore.jks"
keystorePass="123456" sslProtocol="TLS" />
重啟Tomcat并驗證
sudo systemctl restart tomcat9
訪問https://服務器IP:8443,若出現安全鎖圖標則配置成功。
安裝Certbot獲取證書
sudo apt install certbot
sudo certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com
證書默認存儲在/etc/letsencrypt/live/yourdomain.com/。
配置Tomcat
編輯/etc/tomcat9/server.xml,添加以下內容:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/etc/letsencrypt/live/yourdomain.com/keystore.jks"
certificateKeystorePassword="your_password"
type="RSA" />
</SSLHostConfig>
</Connector>
(需先將證書導入JKS,參考的keytool命令)
設置自動續期
編輯/etc/letsencrypt/renewal-hooks/deploy/post.sh,添加:
systemctl restart tomcat9
確保Certbot續期后自動重啟Tomcat。
重啟服務并驗證
sudo systemctl restart tomcat9
訪問https://yourdomain.com:8443,確認證書有效。
<Connector>中指定。sudo ufw allow 443/tcp)。參考來源: