• 在linux的tomcat中配置https及自动跳转


          公司业务发展需要添加https,苹果在2017年1月1日以后认为https是安全的所以很多网站都进行了升级。苹果在iOS 9中引入的一项隐私保护功能,屏蔽明文http资源加载,连接必须经过更安全的https。苹果目前允许开发者暂时关闭ATS,可以继续使用HTTP连接,但到年底所有官方商店的应用都必须强制性使用ATS。,如果不升级苹果端是不支持的。

      说一下证书,由于http的协议和https的协议不一样,所以用的端口也不一样http是80而https是443,而且https协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。目前主流的SSL证书主要分为DV SSL 、 OV SSL 、EV SSL。

    DV SSL

     DV SSL证书是只验证网站域名所有权的简易型(Class 1级)SSL证书,可10分钟快速颁发,能起到加密传输的作用,但无法向用户证明网站的真实身份。

    目前市面上的免费证书都是这个类型的,只是提供了对数据的加密,但是对提供证书的个人和机构的身份不做验证。

    OV SSL

    提供加密功能,对申请者做严格的身份审核验证,提供可信身份证明。

     和DV SSL的区别在于,OV SSL 提供了对个人或者机构的审核,能确认对方的身份,安全性更高。

     所以这部分的证书申请是收费的~

    EV SSL

     超安=EV=最安全、最严格 超安EV SSL证书遵循全球统一的严格身份验证标准,是目前业界安全级别最高的顶级 (Class 4级)SSL证书。

     金融证券、银行、第三方支付、网上商城等,重点强调网站安全、企业可信形象的网站,涉及交易支付、客户隐私信息和账号密码的传输。

     这部分的验证要求最高,申请费用也是最贵的。

    我个人建议中小型网站选择DV和OV的证书就可以了,大型的网站选择EV。要是买证书的话我建议最好到阿里云上购买,如果不知道在哪里购买直接打客服就好了。

    在购买完证书后会有四个文件

    (1)生成一个新的文件ssl-bundle.crt,如上图最后一个文件和第二个文件分别做如下

    cat STAR_hqssjt_com.crt <(echo) COMODORSAAddTrustCA.crt  > ssl-bundle.crt 

    生成一个新的文件ssl-bundle.crt 

    2保存新的Key

     

    把这个文件进行改名

     mv hqssjt.com.key domain_com.key

    3生成p12文件

    openssl pkcs12 -export -in ssl-bundle.crt -inkey domain_com.key -out domain_com.p12 -name tomcat -password pass:111111

    4生成tomcat使用的.jks文件

    keytool -importkeystore -v -srckeystore domain_com.p12 -srcstoretype pkcs12 -destkeystore domain_com.jks -deststoretype jks -srcstorepass '111111' -deststorepass '111111'

    5配置tomcatconfserver.xml文件

    <Connector port=”80” 下面加入如下配置

                   .......

                   ......./>

     <Connector port="443"

                   protocol="org.apache.coyote.http11.Http11NioProtocol"

                   maxThreads="1800" #这个要和上面一段配置的参数一致

                   SSLEnabled="true"

                   scheme="https"

                   secure="true"

                   sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1"

                   clientAuth="false"

                   sslProtocol="TLS"

                   keystoreFile="/存放密码的路劲/domain_com.jks"

                   keystorePass="111111" />

    配置到这里https就配置完成了,访问的时候要在最前面加上https否则不会自动跳转至https,如果不加还会和以前一样是http。以上操作我简称是通用模式 ,默认情况下既可以访问到HTTP,如果需要访问https必须在请求头加入https才行,这里就需要和开发人员说一下把接口都换成https,这里很重要,这里就是ios和微信端需要换一下,没必要所有的开发项目都去换,所有开发都去换这样工作量会很大的。原因嘛,大家都懂得。

     如果老板经理需要所有项目都得是https的话,必须让所有的开发都的换成https有一个接口不对,都访问不到,因为下面的配置是要把所有请求流量都走HTTPS,配置下面要考虑清楚啦。

    所以这里又会出现一个问题如何让http自动跳转至https

    6配置tomcat使其可以自动跳转至https,配置conf里的web.xml文件

    在最后的字段中找到</login-config>4688行)和</web-app>中加入如下配置文件

    <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>

    7重启tomcat

    测试访问 会自动跳转至https说明配置成功了

    8遇见问题总结

    在(2)(3)最好两个密码必须一致,密码不能设置太简单上面111111只是示例配置真实环境不可以这样。

    在(5)的时候要写对路径和证书名字写错的话也是不正确的,这里的密码也和上面密码一致。

    如果都配置完成了在微信里仍然访问不到https说明微信端配置的URL错误了,如果你是运维那现在就不关你的事情了,应该是前端或是微信开发的问题,让他们改一下url就好了

    这里仍然还是http,所以微信端依然访问不到页面,要把这里改成https才行。

    这里改完以后记得提醒开发一定要把调用接口的地方改成https,如果不改会造成各种问题

    最后验证

    配置https完成。

  • 相关阅读:
    Conversions
    Mispelling4
    A hard puzzle
    Easier Done Than Said?
    利用map可以对很大的数出现的次数进行记数
    A+B Coming
    结构体成员变量
    NSString 类介绍及用法
    复习回顾
    函数与方法对比
  • 原文地址:https://www.cnblogs.com/qingyuanyuanxi/p/7976429.html
Copyright © 2020-2023  润新知