tomcat配置域名及HTTPS

发布时间 2023-05-29 11:47:57作者: 百衲本

1.安装JDK及Tomcat

tar xf jdk-8u201-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
ln -sv jdk1.8.0_201/ java
vim  /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/java
export CLASSPATH=$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

. /etc/profile.d/java.sh
java -version


tar xf apache-tomcat-8.5.57.tar.gz -C /usr/local/
cd /usr/local/
ln -sv apache-tomcat-8.5.57/ tomcat
cd tomcat

2.配置Tomcat使用域名

编辑server.xml文件

<Engine name="Catalina" defaultHost="www.inktech.ltd"> #设置默认域名,类似Nginx default server,接收所有发往非明确定义虚拟主机的请求
<Host name="www.inktech.ltd"  appBase="webapps"  #name 配置的域名 appBase 加载的文件夹,默认即可
            unpackWARs="true" autoDeploy="true">
            <Alias>inktech.ltd</Alias> #如果项目有多个域名可以在Alias添加,此处是将域名默认跳转到www上
#path 输入的URI,为空为不输入,不可省略 docBase 项目代码目录 reloadable 动态加载,生产环境建议禁用 <!-- Context path="" docBase="C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\qxw" debug="0" reloadable="true" ></Context> -->

3.添加HTTPS证书

mkdir cert
cd cert
mv ~/8350448_inktech.ltd_tomcat.zip .        #证书从供应商处下载
unzip 8350448_inktech.ltd_tomcat.zip
cat pfx-password.txt  #查看证书密码
keytool -changealias -keystore /usr/local/tomcat/cert/inktech.ltd.pfx -alias alias  -destalias tomcat #修改证书别名,默认alias
输入密钥库口令:   #password文件内容

4.设置HTTPS

    <Connector port="8080" protocol="HTTP/1.1"  #建议80
               connectionTimeout="20000"
               redirectPort="8443" />  #此端口和下面的保持一致
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"  
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keyAlias="tomcat"  URIEncoding="UTF-8"  
               keystoreFile="/usr/local/tomcat/cert/inktech.ltd.pfx"    #刚刚解压的证书
               keystorePass="ddxfexc7"   #密码文件内容
               ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, 
                TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
                TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
                TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
                TLS_ECDHE_RSA_WITH_RC4_128_SHA,
                TLS_RSA_WITH_AES_128_CBC_SHA256,
                TLS_RSA_WITH_AES_128_CBC_SHA,
                TLS_RSA_WITH_AES_256_CBC_SHA256,
                TLS_RSA_WITH_AES_256_CBC_SHA,
                SSL_RSA_WITH_RC4_128_SHA"/>

5.设置HTTPS强制跳转

编辑web.xml,在最后添加一下内容

<login-config>
      <!-- Authorization setting for SSL -->
        <auth-method>CLIENT-CERT</auth-method>
        <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>

    <security-constraint>
      <!-- Authorization setting for SSL -->
        <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>

6.启动并验证

做好DNS或hosts解析

访问http://www.inktech.ltd:8080/

 验证上是否会自动跳转到https://www.inktech.ltd:8443/