拒绝http裸奔,拥抱https

一个依然采用HTTP传输信息的购物网站,很有可能成为“钓鱼”攻击的目标,那么,HTTP的风险何在呢?

举个例子来说,当登陆一家购物网站的账户或进行购物付款时,需要输入用户名及密码,这些信息将通过HTTP协议传输给网站服务器。但HTTP传输未经加密,密码在传输过程中很可能被黑客截获,以致资金被窃。为了保证这些隐私数据能加密传输,网络安全专家设计了HTTPS协议。HTTPS中的“S”指的就是SSL证书(服务器证书),由SSL证书+HTTP协议构建的可进行加密传输、网站身份认证的网络协议,可以有效防止信息泄露。

阿里云配置https流程

源材料

阿里云服务器
阿里云域名
阿里云ssl证书(阿里云搜索ssl即可免费获得)
springboot环境(springboot1.5.6+mybatis+mysql+java)

流程

在这里插入图片描述

第一步

这里下载tomcat的证书即可,解压后会得到一个*.pfx文件和一个txt文件
我们把它们放在resources文件下
在这里插入图片描述

第二步

springboot启动类中加入下列代码

@Bean
  public EmbeddedServletContainerFactory servletContainer() {
    //springboot版本不同可能下面的类名会不同或者类的包路径会不同
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
      @Override
      protected void postProcessContext(Context context) {
        SecurityConstraint constraint = new SecurityConstraint();
        constraint.setUserConstraint("CONFIDENTIAL");
        SecurityCollection collection = new SecurityCollection();
        collection.addPattern("/*");
        constraint.addCollection(collection);
        context.addConstraint(constraint);
      }
    };
    tomcat.addAdditionalTomcatConnectors(httpConnector());
    return tomcat;
  }
  
  @Bean
  public Connector httpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    //监听http的端口号
    connector.setPort(80);
    connector.setSecure(false);
    //监听到http的端口号后转向到的https的端口号
    System.out.println("监听到了80端口");
    connector.setRedirectPort(443);//这里的端口写成和配置文件一样的端口就Ok
    return connector;
  }
第三步

application.properties中加入下列配置

server.ssl.key-store=classpath你的pfx文件名.pfx
server.ssl.key-store-password=你的txt文件中的密码
server.ssl.keyStoreType=PKCS12
server.port=443

查看结果

访问我们的服务器可以发现已经带https绿标了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值