第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

SpringBoot2.x配置HTTPS,并實(shí)現(xiàn)HTTP訪問自動(dòng)轉(zhuǎn)向HTTPS

標(biāo)簽:
SpringBoot

1.证书生成

如果对HTTPS不太了解,可以自行搜索资料,这里重点不在说https。

使用SSL需要我们先生成一个证书,这个证书我们可以自己生成,也可以从SSL证书授权中心获得,自己生成的不被客户端认可,从授权中心获得的可以被客户端认可,提供SSL授权证书的服务商有很多,小伙伴们有兴趣可以自行查找,我这里以自己生成的证书为例。 

生成方式也很简单,直接使用java自带的命令keytool来生成,生成命令如下:

-storetype PKCS12 -keyalg RSA -keysize 2048  -keystore keystore.p12 -validity 3650

这里涉及到几个参数的含义我简单说一下:

1.-storetype 指定密钥仓库类型

2.-keyalg 生证书的算法名称,RSA是一种非对称加密算法 

3.-keysize 证书大小 

4.-keystore 生成的证书文件的存储路径 

5.-validity 证书的有效期

执行完上面一行命令后,按照提示进行操作,创建完成后,可在用户根目录查看生成的keystore文件。

2.生成的keystone文件复制到我们springboot项目的根目录

生成证书后,我们将keystone文件拷贝到我们项目的根目录下,然后修改application.properties文件,添加HTTPS支持。在application.properties中添加如下代码:

server.ssl.key-store=keystore.p12

server.ssl.key-store-password=123456

server.ssl.key-store-type=PKCS12

server.ssl.key-alias=tomcat

第一行指定签名文件,第二行指定签名密码,第三行指定密钥仓库类型,第四个是别名。OK,这样配置完成之后我们就可以通过HTTPS来访问我们的Web了。

3.HTTP自动转向HTTPS

光有HTTPS肯定还不够,很多用户可能并不知道,用户有可能继续使用HTTP来访问你的网站,这个时候我们需要添加HTTP自动转向HTTPS的功能,当用户使用HTTP来进行访问的时候自动转为HTTPS的方式。这个配置很简单,在入口类中添加相应的转向Bean就行了。

在springboot1.x这样配置

@Bean

public Connector connector(){

Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");

connector.setScheme("http");

connector.setPort(8080);

connector.setSecure(false);

connector.setRedirectPort(8033);

return connector;

}

@Bean

 public EmbeddedServletContainerFactory servletContainer() {

 TomcatEmbeddedServletContainerFactory tomca t= 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( connector ());

        return tomcat;

    }

这个时候当我们访问http://localhost:8080的时候系统会自动重定向到https://localhost:8033这个地址上。

首先 这里需要使用 EmbeddedServletContainerFactory 这个类,但是在springboot2.x版本已经找不到这个类了。但是在网上大部分还都是根据1.x来实现的,这也是我为什么写这篇文章的初衷,所以需要下边代码实现springboot2.x版本HTTP自动转向HTTPS。

在springboot2.x这样配置

@Bean

public Connector connector(){

Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");

connector.setScheme("http");

connector.setPort(8080);

connector.setSecure(false);

connector.setRedirectPort(8033);

return connector;

}

@Bean

public TomcatServletWebServerFactory tomcatServletWebServerFactory(){

TomcatServletWebServerFactory tomcat =new TomcatServletWebServerFactory(){

        @Override

        protected void postProcessContext(Context context) {

        SecurityConstraint securityConstraint=new SecurityConstraint();

        securityConstraint.setUserConstraint("CONFIDENTIAL");

        SecurityCollection collection=new SecurityCollection();

        collection.addPattern("/*");

        securityConstraint.addCollection(collection);

        context.addConstraint(securityConstraint);

}

};

tomcat.addAdditionalTomcatConnectors(connector());

return tomcat;

}

到这,我们在springboot2.x项目中,当我们访问http://localhost:8080的时候系统会自动重定向到https://localhost:8033这个地址上。

区别就是EmbeddedServletContainerFactory 换成了TomcatServletWebServerFactory;



作者:柴江朋
链接:https://www.jianshu.com/p/3a81277a053c

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 2
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消