声明:本文以阿里云租的服务器为例。(域名和服务器均在阿里云购买)

服务器 :

系统: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.购买后应该能看到

centos9安装sftp centos9安装ssr_https


点击“下载”,选择“Tomcat”的下载,下载的zip文件,在本地解压。注意:如果你在购买的时候没有安装推荐的来的话,解压后只有一个pfx文件,没有txt文件

证书(domain name.pfx):以.pfx为后缀

密码(pfx-password.txt):以.txt为后缀

Tips:每次下载证书都会产生新的密码

2.在本机打开MobaXterm,(这里需要先连接上服务器,很简单,输入服务器ip地址,用户名+密码)

连接上去后

centos9安装sftp centos9安装ssr_https_02


注意上面的红方框里的目录,我们可以直接点击进入,

进入到tomcat的安装目录

centos9安装sftp centos9安装ssr_centos9安装sftp_03


在这里新建一个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的默认页面就成功了。
centos9安装sftp centos9安装ssr_https_04