在阿里云申请了免费ssl证书,想搞以下https访问,根据阿里给的文档,测试了很久,也没有成功,这里分享一下我的填坑之路: 阿里云证书配置tomcat的文档连接: https://yundun.console.aliyun.com/?p=cas#/cas/download/1535905042282?regionId= 以下是阿里云的解释:

Tomcat支持JKS格式证书,从Tomcat7开始也支持PFX格式证书,两种证书格式任选其一。
文件说明:
1. 证书文件1535905042282.pem,包含两段内容,请不要删除任何一段内容。
2. 如果是证书系统创建的CSR,还包含:证书私钥文件1535905042282.key、PFX格式证书文件1535905042282.pfx、PFX格式证书密码文件pfx-password.txt。
1、证书格式转换
在Tomcat的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,附件中只包含1535905042282.pem文件,还需要将私钥文件拷贝到cert目录,命名为1535905042282.key;如果是系统创建的CSR,请直接到第2步。

到cert目录下执行如下命令完成PFX格式转换命令,此处要设置PFX证书密码,请牢记:

openssl pkcs12 -export -out 1535905042282.pfx -inkey 1535905042282.key -in 1535905042282.pem
2、PFX证书安装
找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port="8443"标签,增加如下属性:

keystoreFile="cert/1535905042282.pfx"
keystoreType="PKCS12"
#此处的证书密码,请参考附件中的密码文件或在第1步中设置的密码
keystorePass="证书密码"
完整的配置如下,其中port属性根据实际情况修改:

<Connector port="8443"
    protocol="HTTP/1.1"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="cert/1535905042282.pfx"
    keystoreType="PKCS12"
    keystorePass="证书密码"
    clientAuth="false"
    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
    ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
3、JKS证书安装(帮助)
( 1 ) 使用java jdk将PFX格式证书转换为JKS格式证书(windows环境注意在%JAVA_HOME%/jdk/bin目录下执行)
keytool -importkeystore -srckeystore 1535905042282.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS
回车后输入JKS证书密码和PFX证书密码,强烈推荐将JKS密码与PFX证书密码相同,否则可能会导致Tomcat启动失败。

( 2 ) 找到安装 Tomcat 目录下该文件Server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port="8443"标签,增加如下属性:
keystoreFile="cert/your-name.jks"
keystorePass="证书密码"
完整的配置如下,其中port属性根据实际情况修改:

<Connector port="8443"
    protocol="HTTP/1.1"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="cert/your-name.jks"
    keystorePass="证书密码"
    clientAuth="false"
    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
    ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
( 注意:不要直接拷贝所有配置,只需添加 keystoreFile,keystorePass等参数即可,其它参数请根据自己的实际情况修改 )

4、 重启 Tomcat。
5、 通过 https 方式访问您的站点,测试站点证书的安装配置,如遇到证书不信任问题,请查看帮助视频。

--------------------------------------------------我自己搞了很久,也没有搞定,最后发现tomcat8.5和其他版本不同,-----------------------------------有点淡淡的忧伤---------

啥也不说了,直接上配置文件 配置文件一:server.xml 我将所有的注释都给去掉了,为了方便读写。

------------------------------从开头    到-----------------------
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <Service name="Catalina">

-------------------------到这里都是默认的------------------------不用理会--------------------- ------------------以下才是配置重点------- 1、修改默认的8080端口为80,因为域名都是80端口 2、修改默认的8443为443

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />
    <Connector port="443" protocol="HTTP/1.1"
               maxThreads="150" SSLEnabled="true"  defaultSSLHostConfigName="vjg-ceshi.tamiyun.com">
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig hostName="vjg-ceshi.tamiyun.com"  caCertificateFile="/service/tami-tomcat-8.5/cert/1535905042282.pem">
            <Certificate certificateKeystoreFile="/service/tami-tomcat-8.5/cert/1535905042282.pfx"
			 certificateKeystoreType="PKCS12" certificateKeystorePassword="1535905042282" />
        </SSLHostConfig>
    </Connector>
    <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
    <Engine name="Catalina" defaultHost="vjg-ceshi.tamiyun.com">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
<!-- #第一个虚拟主机  vgj-test.tamiyun.com /-->
    ```
<Host name="vjg-ceshi.tamiyun.com"  appBase="/service/tami-tomcat-8.5/webapps/ROOT" unpackWARs="true" autoDeploy="true" deployXML="false">
           <Alias>vjg-ceshi.tamiyun.com</Alias>
           <Context path="" docBase="/service/tami-tomcat-8.5/webapps/ROOT" debug="0" reloadable="false" privileged="true"></Context>
           <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                  prefix="localhost_access_log." suffix=".txt"
                  pattern="%h %l %u %t "%r" %s %b" />
       </Host>
    </Engine>
  </Service>
</Server>

配置文件二: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>
</web-app>     #这个是文档中有的,要在这个之前添加

#原文连接地址 https://blog.csdn.net/u012811841/article/details/80389792