下面我将详细讲解关于Tomcat配置https SSL证书的完整攻略,包含整个步骤和相关代码示例。
准备工作
- 通过证书颁发机构获取SSL证书,得到包含证书内容和私钥内容的文件,通常为.pfx、.p12或.pem格式。
- 将证书导出为JKS格式,JKS格式是Java KeyStore的缩写,它是Java系统中常用的密钥库格式。
keytool -importkeystore -srckeystore mycert.pfx -srcstoretype pkcs12 -srcalias 1 -destkeystore mycert.jks
- 备份Tomcat配置文件 server.xml。注意,此操作有风险,请自行备份重要文件,以便发生问题时能够恢复。
cp -r $TOMCAT_HOME/conf/server.xml $TOMCAT_HOME/conf/server.xml.bak
配置 Tomcat SSL证书
- 修改 Tomcat 的 server.xml 文件,增加Connector节点
<Connector port="8443" address="0.0.0.0" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/path/to/cert.jks" keystorePass="{your_password}"/>
- 重新启动 Tomcat
sh $TOMCAT_HOME/bin/startup.sh
在浏览器中输入 https://your_domain.com:8443/
,如果能够访问,就说明 SSL 证书配置成功。
示例
这里我提供两个示例,分别基于不同的操作系统。
示例一:基于CentOS7
1. 安装tomcat
在CentOS7系统中,通过yum源安装tomcat,执行下面的命令:
sudo yum install -y tomcat tomcat-webapps tomcat-admin-webapps
2. 配置SSL证书
以下是一个使用Tomcat的默认Java虚拟机的示例,假设您已经拥有了您的私钥和证书文件。
export KEYPASS=YourKeyPassword
export CERTPATH=/etc/pki/tls/certs/yourcertificate.crt
export PRIVPATH=/etc/pki/tls/private/yourcertificate.key
keytool -delete -alias tomcat -storepass changeit -keystore /etc/pki/java/cacerts
keytool -import -v -trustcacerts -alias tomcat -file $CERTPATH -keypass $KEYPASS -storepass changeit -keystore /etc/pki/java/cacerts
你需要把证书和私钥都转换到PKCS12格式,一个实例化的keystore。
openssl pkcs12 -export -in $CERTPATH -inkey $PRIVPATH -out /etc/pki/tls/private/yourcertificate.p12 -name tomcat -passin pass:$KEYPASS -passout pass:$KEYPASS
keytool -importkeystore -srcstorepass $KEYPASS -deststorepass $KEYPASS -srckeystore /etc/pki/tls/private/yourcertificate.p12 -destkeystore /var/lib/tomcat/keystore.jks -srcstoretype pkcs12 -alias tomcat
如果你有一个启用了HTTPS连接的配置,可以编辑 /var/lib/tomcat/conf/server.xml 文件,在此之后重启Tomcat:
<Connector port="8443" protocol="HTTP/1.1"
connectionTimeout="20000"
minSpareThreads="5"
maxSpareThreads="75"
enableLookups="false"
maxThreads="150"
acceptCount="100"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="/var/lib/tomcat/keystore.jks"
keystorePass="$KEYPASS"
clientAuth="false"
sslProtocol="TLS" />
3. 重启Tomcat服务器
通过以下命令重启Tomcat服务器:
sudo systemctl restart tomcat
然后通过 https://your-domain.com:8443 访问。
示例二: 基于MacOS
1. 创建并导入证书
openssl genpkey -algorithm RSA -out server.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain server.crt
2. 配置SSL证书
在 Tomcat 安装目录下的 conf/server.xml 文件中,增加以下 Connector 节点,确保设置了正确的密码和文件路径。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLSv1.2"
keystoreFile="{path to your keystore file}"
keystorePass="{your keystore password}" />
3. 重启Tomcat服务器
通过以下命令重启Tomcat服务器:
sh $TOMCAT_HOME/bin/shutdown.sh
sh $TOMCAT_HOME/bin/startup.sh
然后通过 https://your-domain.com:8443 访问。
希望这个Tomcat配置https SSL证书的项目实践攻略能够对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Tomcat配置https SSL证书的项目实践 - Python技术站