Linux 一个Tomcat配置一个或多个【阿里云】免费SSL证书 自动 / 强制 跳转Https

第一步:登录阿里云,给每个域名配置申请一个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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值