配置https访问可以通过配置Nginx或者通过配置Tomcat来支持,本文介绍为Tomcat配置SSL支持https访问。
1. 主要步骤
- 去CA机构申请SSL证书(阿里云、腾讯云都有免费一年的证书可以申请)
- 准备Tomcat服务器
- 在Tomcat根目录下创建一个固定文件夹 、将证书放入
- 配置conf/server.xml配置文件、conf/web.xml
- 如果开启了防火墙,需要打开SSL对应的端口
2. 实现
- 准备证书,第一个文件为.pfx 格式的证书,第二个是密码 后面配置需要的
- 在Tomcat根目录下创建cert目录(目录名称随意),将证书放入cert目录下
- 配置conf/server.xml配置文件,配置ssl,这里将端口映射到了9999端口,内部转发到443端口
<!-- 配置默认端口 -->
<Connector port="9999" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<!-- 配置证书文件信息 -->
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" >
<SSLHostConfig> <!--证书文件所在的目录 -->
<Certificate certificateKeystoreFile="/root/tomcat/cert/cert-*****i.com.pfx"
certificateKeystoreType="PKCS12" certificateKeystorePassword="xeh0VneU" />
<!--配置类型 刚才password文件里面的密码 -->
</SSLHostConfig>
</Connector>
- 配置conf/web.xml配置文件,配置后会将所有请求默认转为https,如果不配置的话就会https、http都可以访问,所以看需要配置了,不是必须的。
<!-- 配置http 自动转为 https -->
<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>