在CentOS 1804 中的 Tomcat 9 设置 SSL( https ) 加密 (多域名加密,阿里云 SSL+ 腾讯云 SSL)

相关文章:

在 CentOS 1804 中手动安装 JDK 1.8

在CentOS 1804 中设置 Apache Tomcat 9.0.12 开机自启

在tomcat中设置http自动跳转https


准备环境:

  1. CentOS(版本没有要求,笔者使用CentOS 1804)。
  2. Tomcat 9(8.5或9,7/8略有问题,以后再讨论,笔者使用 tomcat 9),相关配置见本文开始或结束的相关文章。
  3. 拥有至少2个域名(两个子域名就可以)。
  4. 阿里云SSL+腾讯云SSL(为了有代表性,所以举了两个不同的SSL)。
    申请地址:
    阿里云(一个阿云帐户最多签发20张免费证书):https://www.aliyun.com/product/cas
    腾讯云(同一主域最多只能申请20张亚洲诚信品牌免费型DV版SSL证书):https://cloud.tencent.com/product/ssl

  1. 本人使用的SSL:
    1. 阿里云SSL:https.wimcn.cn
    2. 腾讯云SSL:a.wimcn.cn
  2. 首先将两个域名解压到tomcat9的根路径下,相关位置如下:
    [root@CSDNBolg tomcat9]# ls
    a.wimcn.cn  BUILDING.txt  CONTRIBUTING.md  lib      logs    README.md      RUNNING.txt  webapps
    bin         conf          https.wimcn.cn   LICENSE  NOTICE  RELEASE-NOTES  temp         work
    
  3. 首先配置一个腾讯云SSL(较简单)(a.wimcn.cn):
    修改tomcat根目录下的conf文件夹下的server.xml文件:
    将
    <Connector port="8080" protocol="HTTP/ connectionTimeout=" redirectPort="8443" />
    修改为:
    <Connector port="80" protocol="HTTP/ connectionTimeout=" redirectPort="443" />
    释放下面的注释
        <!--
        <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   maxThreads="150" SSLEnabled="true">
            <SSLHostConfig>
                <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                             type="RSA" />
            </SSLHostConfig>
        </Connector>
        -->
    修改为:
        <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="a.wimcn.cn">
            <SSLHostConfig hostName="a.wimcn.cn">
                <Certificate certificateKeystoreFile="a.wimcn.cn/Tomcat/a.wimcn.cn.jks"
                             type="RSA" certificateKeystorePassword="密码" />
            </SSLHostConfig>
        </Connector>
    说明:
    hostName="",为该连接器对应的域名,必填。
    defaultSSLHostConfigName="",这是默认域名,无论是单域名SSL,还是多域名SSL都要设置,必填。
    certificateKeystoreFile="",是腾讯云SSL连接器,笔者使用的是相对位置,相对于tomcat根目录的。必填。
    certificateKeystorePassword="",是密码,如果申请腾讯云SSL证书时有填写私钥密码,密钥库密码即私钥密码,否则填写密钥库密码文件中的密码,和腾讯云SSL连接器在相同文件夹下,必填。
    将
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    修改为:
    <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

    如果有需要,请阅读腾讯云SSL证书安装指引:https://cloud.tencent.com/document/product/400/4143

  4. 开放80/443端口:
    查看防火墙是否开启:
    下面说明防火墙开启了:
    [root@CSDNBolg conf]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since Fri 2018-09-21 03:21:59 CST; 56min ago
         Docs: man:firewalld(1)
     Main PID: 767 (firewalld)
       CGroup: /system.slice/firewalld.service
               └─767 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    
    Sep 21 03:21:59 CSDNBolg systemd[1]: Starting firewalld - dynamic firewall daemon...
    Sep 21 03:21:59 CSDNBolg systemd[1]: Started firewalld - dynamic firewall daemon.
    
    下面说明防火墙没有开启:
    [root@CSDNBolg conf]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: inactive (dead) since Fri 2018-09-21 04:19:56 CST; 1s ago
         Docs: man:firewalld(1)
      Process: 767 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
     Main PID: 767 (code=exited, status=0/SUCCESS)
    
    Sep 21 03:21:59 CSDNBolg systemd[1]: Starting firewalld - dynamic firewall daemon...
    Sep 21 03:21:59 CSDNBolg systemd[1]: Started firewalld - dynamic firewall daemon.
    Sep 21 04:19:55 CSDNBolg systemd[1]: Stopping firewalld - dynamic firewall daemon...
    Sep 21 04:19:56 CSDNBolg systemd[1]: Stopped firewalld - dynamic firewall daemon.
    
    开启防火墙:
    [root@CSDNBolg conf]# systemctl start firewalld
    
    查看已开放的端口:
    [root@CSDNBolg conf]# firewall-cmd --list-ports
    8080/tcp
    
    开通80/443端口:
    [root@CSDNBolg conf]# firewall-cmd --zone=public --add-port=80/tcp --permanent
    success
    [root@CSDNBolg conf]# firewall-cmd --zone=public --add-port=443/tcp --permanent
    success
    
    重启防火墙:
    [root@CSDNBolg conf]# firewall-cmd --reload
    success
    
    查看已开放的端口:
    [root@CSDNBolg conf]# firewall-cmd --list-ports
    8080/tcp 80/tcp 443/tcp
    
    重启tomcat:
    [root@CSDNBolg conf]# systemctl restart tomcat9.service
    由于本人测试环境为虚拟机,地址为192.168.113.141,修改本机host为:


    访问https://a.wimcn.cn


    至此,配置一个腾讯云SSL证书的域名就完成了。
  5. 配置一个阿里云SSL(https.wimcn.cn)
    进入阿里云SSL文件夹下(已重命名):
    [root@CSDNBolg https.wimcn.cn]# ls
    https.wimcn.cn.key  https.wimcn.cn.pem  https.wimcn.cn.pfx  https.wimcn.cn.txt
    
    证书格式转换,此处要设置PFX证书密码,请牢记(输入密码时不显示):
    [root@CSDNBolg https.wimcn.cn]# openssl pkcs12 -export -out https.wimcn.cn.pfx -inkey https.wimcn.cn.key -in https.wimcn.cn.pem
    Enter Export Password:
    Verifying - Enter Export Password:
    
    PFX证书安装:
    在
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="a.wimcn.cn"/Connector>
    中新增:
    
    <SSLHostConfig hostName="https.wimcn.cn">
        <Certificate certificateKeystoreFile="https.wimcn.cn/https.wimcn.cn.pfx"
            type="RSA" certificateKeystoreType="PKCS12" certificateKeystorePassword="密码" />
    </SSLHostConfig>
    
    说明:
    hostName="",为该连接器对应的域名,必填。
    certificateKeystoreFile="",是阿里云SSL连接器,笔者使用的是相对位置,相对于tomcat根目录的。必填。
    certificateKeystorePassword="",是密码,上一步证书格式转换时的密码,必填。
    certificateKeystoreType="PKCS12",固定,不可改,必填。
    如果有需要,请在后买阿里云SSL(免费)证书后,在SSL证书控制台(https://www.aliyun.com/product/cas)查看看相关信息。
    另外说明,

    访问https://https.wimcn.cn

     
  6. 补充说明,阿里云SSL配置Tomcat还有JKS证书安装方式,上面讲的是PFX证书安装,两者选其一即可。
    进入阿里云SSL文件夹下(已重命名):
    [root@CSDNBolg https.wimcn.cn]# ls
    https.wimcn.cn.key  https.wimcn.cn.pem  https.wimcn.cn.pfx  https.wimcn.cn.txt
    
    证书格式转换,此处要设置PFX证书密码,请牢记(输入密码时不显示):
    [root@CSDNBolg https.wimcn.cn]# openssl pkcs12 -export -out https.wimcn.cn.pfx -inkey https.wimcn.cn.key -in https.wimcn.cn.pem
    Enter Export Password:
    Verifying - Enter Export Password:
    
     使用java jdk将PFX格式证书转换为JKS格式证书,输入JKS证书密码和PFX证书密码,强烈推荐将JKS密码与PFX证书密码相同,否则可能会导致Tomcat启动失败。:
    [root@CSDNBolg https.wimcn.cn]# keytool -importkeystore -srckeystore https.wimcn.cn.pfx -destkeystore https.wimcn.cn.jks -srcstoretype PKCS12 -deststoretype JKS
    Importing keystore https.wimcn.cn.pfx to https.wimcn.cn.jks...
    Enter destination keystore password:  
    Re-enter new password: 
    Enter source keystore password:  
    Entry for alias 1 successfully imported.
    Import command completed:  1 entries successfully imported, 0 entries failed or cancelled
    
    Warning:
    The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore https.wimcn.cn.jks -destkeystore https.wimcn.cn.jks -deststoretype pkcs12".
    JKS证书安装:
    在
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="a.wimcn.cn"/Connector>
    中新增:
    
    <SSLHostConfig hostName="https.wimcn.cn">
        <Certificate certificateKeystoreFile="https.wimcn.cn/https.wimcn.cn.jks"
            type="RSA" certificateKeystorePassword="密码" />
    </SSLHostConfig>
    
    说明:
    hostName="",为该连接器对应的域名,必填。
    certificateKeystoreFile="",是阿里云SSL连接器,笔者使用的是相对位置,相对于tomcat根目录的。必填。
    certificateKeystorePassword="",是密码,上一步证书格式转换时的密码(PFX证书密码与JKS证书密码相同),必填。
    如果有需要,请阅读腾讯云SSL证书安装指引:https://cloud.tencent.com/document/product/400/4143
    这里就不演示了,效果一样。

相关文章:

在 CentOS 1804 中手动安装 JDK 1.8

在CentOS 1804 中设置 Apache Tomcat 9.0.12 开机自启

在tomcat中设置http自动跳转https

猜你喜欢

转载自blog.csdn.net/qq_32596527/article/details/82774817