第一步:登录阿里云,给每个域名配置申请一个SSL证书
第二步:审核通过之后,点击下载
第三步:窗口右侧会弹出如下窗口
第四步:下载这两个文件,里面会有pfx证书文件,证书密码,还有pem文件
准备工作结束!!!!
先说一点,在网上复制代码,会附带很多空格,必须清除干净,类似下图
看到红色报错的地方没!!!
第五步:Tomcat 【conf文件夹下server文件】配置,先说配置多个
在Tomcat配置多个SSL证书,此Tomcat放多个项目,配置如下,默认以注释的配置已删除。
我写好注释的代码,就是在server文件默认代码基础上自己添加的代码。
记得改port="80",redirectPort="443",port="443"这些配置
记得把注释删掉
<?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">
<!-- 这里修改 -->
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443"/>
<!-- 【配置多个SSL证书开始】 -->
<!--
defaultSSLHostConfigName 默认
hostName 网站域名
caCertificateFile .pem文件目录
certificateKeystoreFile .pfx证书目录
certificateKeystorePassword .pfx证书密码目录
certificateKeystoreType 证书加密类型
-->
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"
URIEncoding="UTF-8" defaultSSLHostConfigName="www.aaa.com">
<SSLHostConfig hostName="www.aaa.com" caCertificateFile="/home/webroot/keystore/aaa.pem">
<Certificate certificateKeystoreFile="/home/webroot/keystore/aaa.pfx"
certificateKeystorePassword="aaapwd" certificateKeystoreType="PKCS12"/>
</SSLHostConfig>
<SSLHostConfig hostName="www.bbb.net" caCertificateFile="/home/webroot/keystore/bbb.pem">
<Certificate certificateKeystoreFile="/home/webroot/keystore/bbb.pfx"
certificateKeystorePassword="bbbpwd" certificateKeystoreType="PKCS12"/>
</SSLHostConfig>
</Connector>
<!-- 【配置多个SSL证书结束】 -->
<!-- 这里修改 -->
<Connector port="8019" 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删除,添加以下代码【添加代码开始】 -->
<Host name="www.aaa.com" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/home/webroot/project-aaa" crossContext="true" reloadable="true"/>
</Host>
<Host name="www.bbb.net" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/home/webroot/project-bbb" crossContext="true" reloadable="true"/>
</Host>
<!-- 【添加代码结束】 -->
</Engine>
</Service>
</Server>
在Tomcat配置一个SSL证书,此Tomcat放一个项目
方式一:在上面的基础上去掉一个即可。
方式二:直接在默认基础上添加以下红框代码,pem文件可用,可不用!!!不用就去掉
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/home/webroot/keystore/aaa.pfx" keystorePass="aaapwd" />
第六步:配置Tomcat自动跳转https
即,浏览器输入http://www.aaa.com/ 》》》 https://www.aaa.com/
打开Tomcat【conf/web.xml】文件
在底部添加以下代码
<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.xml 配置
web.xml中配置以下的拦截请求,若是此种请求的话都将转至https服务。
<security-constraint>
<web-resource-collection>
<web-resource-name>sslapp</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>