Tomcat 8.5 配置 Https SSL 证书
为什么要写本文
在对接微信小程序时,域名需要https才行,用的百度的服务器,jks格式的证书,然而按照百度官网给的教程Tomcat服务器安装SSL证书 ,并没有成功,自己对Tomcat配置文件也不熟悉,网上的教程找了半天,才发现问题所在。踩的坑记录下来,害怕时间久了,就又忘记了…
配置环境介绍
- window server 2019
- Tomcat 8.5
- jks格式证书(证书位置/…/tomcat/cert/domain.jks)
- 已安装openssl
- 已打开443/80端口
配置http ssl
修改配置文件server.xml
- 访问域名时,不再添加端口,便修改下列端口,将
8080
改为80
,8443
改为443
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
- 配置jks证书相关;下面是百度官方文档的配置,自己在用时,访问htpps,网页就报错,删除了
keystoreType="PKCS12"
,然后就成功了…
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/domain.jks" #此处keystoreFile代表证书文件的路径,请用您证书的文件名替换domain。
keystoreType="PKCS12"
keystorePass="证书密码" #请用您证书密码文件中的密码替换“证书密码”。
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" 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"/>
3. 配置监听443(是否有必要?),将下列端口8443,改为443
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443" />
修改后的server.xml的文件,大致是这样的
<?xml version="1.0" encoding="UTF-8"?>
...
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" URIEncoding="UTF-8"/>
....
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/www.xxx.jks"
keystorePass="xxxxxxx"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" 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"/>
.....
</Server>
开启HTTP强制跳转HTTPS
修改配置web.xml文件,强制HTTP跳转HTTPS,这一步按照文档是没问题的,直接拿来用就行了
#在</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>
结语
在最开始搜索教程时,并没有加上关键字jks
,导致走了一些弯路,由于不懂Tomcat,总以为文档时对的。
评论区