tomcat不同的版本对ssl的配置有所不同。8.0以下的版本网上很多,这里就不去说了。下面主要记录的就是8.5.4对ssl的配置
1.获取ssl。
我这里使用的是阿里云提供的ssl。操作步骤:
①:进入阿里云的域名管理
②:选择ssl证书,如下图
③:如果已经申请了ssl证书,就直接点击证书控制台。没有的可以通过购买或者申请免费证书。
④:选择需要的证书下载
2.配置证书
在上面的下载证书的页面有关于证书的配置,但是这个配置不适用于8.5.4,但是配置前面的步骤是通用的。我配置的是JKS证书
生成jks证书之后通过命令查看证书:keytool -keystore your-name.jks -list
显示如下
3:配置tomcat中的server.xml文件
这是tomcat自带的配置例子;
修改为:
<Connector port="端口" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="jks文件位置"
certificateKeystorePassword="上面步骤的密码"
certificateKeyAlias="上面查询出来的别名"
type="RSA" />
</SSLHostConfig>
</Connector>
<Connector port="端口" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="jks文件位置"
certificateKeystorePassword="上面步骤的密码"
certificateKeyAlias="上面查询出来的别名"
type="RSA" />
</SSLHostConfig>
</Connector>
4:将redirectPort的端口配置到ssl的端口上。
5:将http的请求自动跳转到https上。
在web.xml的末尾加上代码
<security-constraint>
<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>
<security-constraint> <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>