声明:本文以阿里云租的服务器为例。(域名和服务器均在阿里云购买)
服务器 :
系统:Centos 7.3 已安装:Tomcat 9.0
本机:
系统:Win10 已安装:MobaXterm(非常赞的一个应用)
1.使用本机前往阿里云官网购买SSL证书(个人)
https://common-buy.aliyun.com/?spm=5176.2020520163.cas.29.a70d56a7rZ31TP&commodityCode=cas#/buy 购买过程的一些细节根据官网的推荐来,都会有红色字体提示的!!!
2.购买后应该能看到
点击“下载”,选择“Tomcat”的下载,下载的zip文件,在本地解压。注意:如果你在购买的时候没有安装推荐的来的话,解压后只有一个pfx文件,没有txt文件
证书(domain name.pfx):以.pfx为后缀
密码(pfx-password.txt):以.txt为后缀
Tips:每次下载证书都会产生新的密码
2.在本机打开MobaXterm,(这里需要先连接上服务器,很简单,输入服务器ip地址,用户名+密码)
连接上去后
注意上面的红方框里的目录,我们可以直接点击进入,
进入到tomcat的安装目录
在这里新建一个cert目录。
也可使用
cd usr/local/tomcat
mkdir cert
这样的话上传两个文件需要自行搭建FTP服务,使用FTP上传,比较麻烦。
我们使用MobaXterm提供的功能,直接将两个文件从本地拖到对应的目录中。(本质上使用的还是FTP)
3.打开tomcat/conf/server.xml,在server.xml文件中找到以下参数并进行修改。
这里还是使用MobaXterm的功能,打开文件它会打开自带的编辑器,编辑完成后,可以自动更新到服务器。
当然,你还是可以使用
vim server.xml
输入 i,进入INSERT模式,编辑后,按 ESC ,输入“:wq”,(保存并退出)
下面是要修改的内容:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
#找到以上参数,去掉<!- - 和 - ->这对注释符并修改为如下参数,对HTTPS默认端口进行配置:
<Connector port="80" protocol="HTTP/1.1" #将Connector port修改为80。
connectionTimeout="20000"
redirectPort="443" /> #将redirectPort修改为SSL默认端口443,让HTTPS请求转发到443端口。
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="cert/keystore.pfx"
certificateKeystorePassword="XXXXXXX"
certificateKeystoreType="PKCS12" />
#找到以上参数,去掉<!- - 和 - ->这对注释符并修改为如下参数:
<Connector port="443" #将Tomcat中默认的HTTPS端口Connector port 8443修改为443。8443端口不可通过域名直接访问、需要在域名后加上端口号;443端口是HTTPS的默认端口,可通过域名直接访问,无需在域名后加端口号。
protocol="org.apache.coyote.http11.Http11NioProtocol" #server.xml文件中Connector port有两种运行模式(NIO和APR),请选择NIO模式(也就是protocol="org.apache.coyote.http11.Http11NioProtocol")这一段进行配置。
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/usr/local/tomcat/cert/证书域名.pfx" #此处certificateKeystoreFile代表证书文件的路径,请用您证书的路径+文件名替换证书域名.pfx,例如:certificateKeystoreFile="/usr/local/tomcat/cert/abc.com.pfx"
certificateKeystorePassword="证书密码" #此处certificateKeystorePassword为SSL证书的密码,请用您证书密码文件pfx-password.txt中的密码替换,例如:certificateKeystorePassword="bMNML1Df"
certificateKeystoreType="PKCS12" /> #证书类型为PFX格式时,certificateKeystoreType修改为PKCS12。
</SSLHostConfig>
</Connector>
port="8009" protocol="AJP/1.3" redirectPort="8443" />
#找到以上参数,去掉<!- - 和 - ->这对注释符并修改为如下参数:
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" /> #将redirectPort修改为443,让HTTPS请求转发到443端口。
修改web.xml,在web.xml文件最底部添加以下内容,实现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>
4.进入的usr/local/tomcat/bin目录下
使用
./shutdown.sh #停止
./startup.sh #启动
重新启动Tomcat。
5.在浏览器地址栏输入
https://yourdomain 跳转到Tomcat的默认页面就成功了。