HTTP遭Google 抛弃,开发者该如何应对——Spring Boot配置HTTPS协议,技术干货分享

前段时间我看过一篇《HTTP遭谷歌抛弃 7月起Chrome将全部标示为不安全》内容大概是:据国外媒体Venturebeat报道,谷歌近日宣布,今年7月起,Chrome浏览器的地址栏将把所有HTTP标示为不安全网站。这是谷歌浏览器针对HTTP网站开战的第三步棋。

其实不只是Google抛弃,国外大部分网站和一些主流浏览器都正在开始将“http”标为不安全网站,那我们开发者该怎么应对呢?今天就为大家分享一下Spring Boot配置HTTPS协议。

Spring Boot中启动HTTPS

首先你必须知道什么是Spring Boot,你对Spring Boot有多少了解。如果都具备这些知识那我们来学习怎么在SpringBoot中开启HTTPS。

需要如下步骤:

1.要有一个证书,买的或者自己生成的

2. 在Spring Boot中启动HTTPS

3. 将HTTP重定向到HTTPS(可选,可以不用代码配置)

获取SSL证书

在这里我们提供两种配置方式:

1. 自己生成SSL证书

2. 购买SSL证书

这里作为演示,采用keytool生成

第一步 :windows+r 打开cmd命令窗

第二步:找到JDK安装目录切换到bin目录下

第三步 :在次目录下输入:

keytool -genkey -aliastomcat -storetype PKCS12 -keyalg RSA -keysize2048

-keystore keystore.p12 -validity3650

输入上面相应信息会生成一个PKCS12格式的叫做keystore.p12的证书。

第四步 :将bin目录下生成的keystore.p12放在Spring Boot项目中的classpath目录下,即src/main/resources目录下

第五步 :在src/main/resources目录下的generator.properties文件中配置HTTPS,配置信息如下:

server.port:8443

server.ssl.key-store:classpath:keystore.p12

server.ssl.key-store-password:mypassword

server.ssl.keyStoreType:PKCS12

注:mypassword是你在cmd中输入的密匙库口令

就这样我们的Spring Boot项目的HTTPS就已经配置好了

将HTTP请求重定向到HTTPS(可选,可以不用代码配置)

让我们的应用支持HTTP是个好想法,但是需要重定向到HTTPS,上面说了不能同时在application.properties中同时配置两个connector,所以要以编程的方式配置HTTP connector,然后重定向到HTTPS connector

这需要在配置类中配置一个TomcatEmbeddedServletContainerFactory bean,代码如下:

@BeanpublicEmbeddedServletContainerFactoryservletContainer() { TomcatEmbeddedServletContainerFactory tomcat =newTomcatEmbeddedServletContainerFactory() {@OverrideprotectedvoidpostProcessContext(Context context) { SecurityConstraint securityConstraint =newSecurityConstraint(); securityConstraint.setUserConstraint("CONFIDENTIAL"); SecurityCollection collection =newSecurityCollection(); collection.addPattern("/*"); securityConstraint.addCollection(collection); context.addConstraint(securityConstraint); } }; tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());returntomcat; }privateConnectorinitiateHttpConnector() { Connector connector =newConnector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setPort(8080); connector.setSecure(false); connector.setRedirectPort(8443);

returnconnector; }

特别提示 :注意导包问题!!!

完成上面的步骤一切就OK啦,启动你的项目访问吧!

如果你还想了解更多技术关注我吧后期我们将会上线芸曦学院APP以及小程序供大家学习交流

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180413G1W4XV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券