Tomcat服务器安装SSL证书(PFX格式)
您可以通过将SSL证书安装到Tomcat服务器,使Tomcat服务器支持HTTPS安全访问。本文介绍如何在Tomcat服务器中安装SSL证书。
说明
本文档Tomcat版本以 tomcat9.0.13
为例。
安装前请确认443端口未被占用,如果443端口已使用,请在安装证书时绑定其他端口。
获取证书
- 我们为您签发证书后将会给您颁发证书文件(.zip)压缩格式,压缩包中有四个文件夹分别对应四种证书格式:Tomcat、Nginx、IIS、Apache;本文档使用PFX格式进行安装所以需要用到IIS文件夹内的证书。 (不同文件夹只是文件格式不同,使用其他文件夹的文件并不冲突) 2.IIS文件夹中将包含三个文件,
domain_com.pfx
证书文件domain_com.key
私钥文件password.txt
证书密码文件
安装SSL证书
- 将已获取到的
domain_com.pfx
证书文件从本地目录拷贝到Tomcat服务器的/usr/tomcat9.0.13/conf
目录下。 不同版本的Tomcat路径名称会有些许区别,请前往您的服务对应的路径进行操作。 - 编辑在
/usr/tomcat9.0.13/conf
目录下的server.xml
文件。 在server.xml
文件中添加Connector
属性,内容如下:
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- 证书的路径 -->
keystoreType="PKCS12"
keystorePass="证书密码" <! -- 请替换为password.txt密码文件中的内容 -->
clientAuth="false"
SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
- 保存配置文件,在
bin
目录下执行以下命令,确认配置是否正确。
./configtest.sh
- 重启Tomcat,在
bin
目录下执行以下命令:
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器
测试SSL证书
在浏览器地址栏输入绑定SSL证书的域名,测试您的 SSL 证书是否安装成功。如果成功,则浏览器地址栏会显示一个安全锁标志,点击可查看证书信息。
HTTP 自动跳转 HTTPS 的安全配置(可选)
如果您需要将 HTTP 请求自动重定向到 HTTPS,您可以通过以下操作设置:
- 编辑
/usr/tomcat9.0.13/conf
目录下的web.xml
文件,找到</welcome-file-list>
标签。 - 请在结束标签
</welcome-file-list>
后面换行,并添加以下内容。
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
- 编辑
/usr/tomcat9.0.13/conf
目录下的server.xml
文件,将 redirectPort 参数修改为 SSL 的connector
的端口,即443端口。如下所示:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
- 保存配置文件,在bin目录下执行以下命令,确认配置是否正确。
./configtest.sh
- 如果配置没有问题,重启Tomcat服务器即可使用域名访问,实现HTTP自动跳转HTTPS。
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器