应用场景:通过Https来访问Tomcat的项目
一、需要提前准备:
1、域名
2、阿里云ssl证书(可在阿里云免费申请证书,申请证书需要域名)
二、实现思路:
通过本地的Tomcat配置https进行验证
我的域名还在走流程,所以找了一个其他项目域名和证书来模拟测试,域名就不放出来了,后续也会打码(注:要在阿里云下载Tomcat的证书)
因为是其他项目的域名,所以需要通过host重定向域名指向本机ip(这里我把一级和二级域名都指向了本机),233是我的本机
文件保存后通过 ipconfig /flushdns刷新一下DNS解析缓存
然后通过ping来验证域名是否指向本机
三、Tomcat配置Https
1、证书存放
在Tomcat目录下创建certificate目录(目录名自定)存放证书
zip就是阿里云下载的证书压缩包(压缩包解压后就没用了这里只是给大家展示下),里面就两个文件:
.pfx文件是证书
pfx-password.txt 文件里是证书的密码
2、修改Tomcat的conf/server.xml配置文件,我把整个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>
<!-- port端口:https默认443,可根据自己的需求调整如果非443需要在域名后面加端口 -->
<!-- keystoreFile证书文件路径 -->
<!-- keystorePass证书密码,在pfx-password.txt中拷贝 -->
<Service name="Catalina">
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreType="PKCS12" keystoreFile="certificate/xxx.cn.pfx" keystorePass="******"
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"
/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<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>
配置修改完成后,启动Tomcat再浏览器通过https+域名进行验证