第一步:申请证书
首先可去任意颁发证书平台上申请免费或收费的证书,本人于阿里云申请的免费证书为例。
证书申请完毕后下载证书(图1),tomcat配置下载其对应证书(图2),下载完成后,把下载的压缩 包解压里面有一个.pfx文件(证书)一个.txt文件(证书密码)(图3)。然后将.pfx文件传到服务器上tomcat/conf目录下
第二步:配置tomcat
打开tomcat的conf下的server.xml文件,更改配置如下:
1、将<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
改为:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
即把redirectPort的属性值由8443改为443(443是https协议的默认端口,类似于http协议的80端口)
2、将
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/your证书.pfx"
certificateKeystorePassword="your密码"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
</Connector>
改为
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/your证书.pfx"
certificateKeystorePassword="your密码"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
</Connector>
即把port的属性值由8443改为443(原因同上),把certificateKeystoreFile的属性值改为你上传的证书位置的路径(记得带上后缀名),把certificateKeystorePassword的属性值改为你下载证书时txt文件里面的密码。本段代码首次默认是注释掉的,把注释解开后进行如上修改即可。
3、将<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
改为<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
即将redirectPort的属性值由8443改为443(原因同上)
第三步:重启tomcat
至此配置完成,重启tomcat,访问证书绑定的域名(如:https://www.yourhref.com)即可进入tomcat页面
此处应注意:
1、Linux上小于1024的端口(443小于1024)默认为root权限用户,所以启动tomcat服务时,需要用sudo ./startup.sh。
2、如果想用其它端口配置https,只需把以上更改为443的地方全部改成其它你想用的https端口就好(如统一改成“8443”)
3、如果想让http的访问也自动转成https,则需要把tomcat中conf目录下的web.xml文件更改如下:
将下面代码加到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>