Tomcat安装配置SSL/HTTPS证书说明
Tomcat配置SSL证书,根据版本不同分为两种情况。
配置说明
- 将jks证书文件上传至
conf/ssl/
目录,配置conf/server.xml
文件中的SSL连接器;
- 一般原配置文件有8443端口的默认SSL连接器,将原8443端口连接器删掉使用本页面提供的参考配置文件内容,或在原连接器上修改;
- 参考配置文件里的省略号代表原
server.xml
配置文件内容,根据实际情况替换参考配置文件中的域名、证书文件路径、jks证书密码(高亮标示行);
- 确认服务器443端口已开放,对部分云服务器商(如阿里云/腾讯云),还需要在产品控制台的安全组开放443端口,具体请参考云服务商文档;
- 重启Tomcat,使配置生效;
- 如果使用了CDN/负载均衡,若CDN支持http协议回源则只在CDN上配置证书即可。如果CDN产品不支持http协议回源,则需要同时在服务器和CDN上配置证书,详情可以咨询相应CDN产品技术支持。
8.5+(8.5及更高)版本
Tomcat模式参考配置文件
- 将默认的80端口连接器
redirectPort
端口从8443
改为443
。
- 注意修改高亮行jks文件路径和证书密码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | <?xml version="1.0" encoding="UTF-8"?>
...
<Server port="8005" shutdown="SHUTDOWN">
...
<Service name="Catalina">
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig hostName="yourdomain.com">
<Certificate certificateKeystoreFile="conf/ssl/yourdomain_com.jks"
certificateKeystorePassword="123456"
certificateKeystoreType="JKS"
certificateKeyAlias="tomcat"
type="RSA" />
</SSLHostConfig>
</Connector>
</Service>
</Server>
|
Apache模式参考配置文件
注意修改高亮行的私钥、证书、中级证书文件路径。
| <Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/ssl/yourdomain_com.key"
certificateFile="conf/ssl/yourdomain_com.crt"
SSLCertificateChainFile="conf/ssl/ca.crt"
type="RSA" />
</SSLHostConfig>
</Connector>
|
8.4-(8.4及更低)版本
Tomcat模式参考配置文件
注意修改高亮行jks文件路径和证书密码。
| <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
keystoreFile="conf/yourdomain_com.jks"
keystorePass="123456"
clientAuth="false"
sslProtocol="TLS"
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" />
|
强制HTTPS
在conf/web.xml
文件中,找到</welcome-file-list>
标签,在下方加入以下代码后重启Tomcat。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | <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>
|