HTTP访问协议转换成HTTPS

前言

最近打算写一款小程序,然后去小程序开发平台填写request合法域名,发现只支持https协议



于是尝试去把HTTP转换成HTTPS,首先说一下我的配置:

  • 阿里云服务器
  • 操作系统:CentOS 7.4 64位
  • Web服务器:Tomcat 9.+

详解

主要分为三个步骤:

  • 服务器配置域名,并备案
  • 购买SSL证书,下载证书
  • 上传并配置到服务器上
1.服务器配置域名,并备案

小程序不支持添加IP地址,必须是合法域名 ,所以需要我们去给购买域名并备案 , 具体方法我就说了, 网上很多。

2.购买SSL证书并下载

腾讯云,阿里云等平台有免费的证书,大家可以直接去申请一下
阿里云地址:https://www.aliyun.com/product/cas


选择免费的SSL证书,并绑定你的域名地址等待审核就好了,审核时间很快,成功后会提示你证书已签发。
然后我们点击下载:

选择对应的服务器下载:

我下载的是Tomcat服务器证书,并解压

里面包含了PFX格式证书文件和TXT格式密码文件, 需要注意的是每次下载都会有新的pfx-password ,是一一对应的。

3.上传并配置到服务器上

tomcat服务器中新建cert文件夹,并上传刚才下载的证书



打开Tomcat/conf/server.xml,在server.xml文件中找到以下参数并进行修改
(1).

 <Connector port="80" protocol="HTTP/1.1"    #端口可更改
               connectionTimeout="20000"
               maxHttpHeaderSize="8192"
               redirectPort="443" /> #将redirectPort修改为SSL默认端口443,让HTTPS请求转发到443端口。

(2).
找到一下参数:

    <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" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxHttpHeaderSize="8192"
               URIEncoding="UTF-8"
         
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate 
            certificateKeystoreFile="/usr/local/apache-tomcat-9.0.22/cert/yourname.pfx"   #你的证书路径
           certificateKeystorePassword="证书密码"   #你的证书密码 
           certificateKeystoreType="PKCS12" 
                          />
        </SSLHostConfig>
    </Connector>

主要添加你的证书路径和证书密码

(3).

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
#找到以上参数,去掉<!- - 和 - ->这对注释符并修改为如下参数:
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />  #将redirectPort修改为443,让HTTPS请求转发到443端口。

(4).在server.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>

最后保存文件修改,重启tomcat就可以了


希望对大家有所帮助!

大家可以关注我的微信公众号:「秦子帅」一个有质量、有态度的公众号!

公众号