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/