您的位置:首页 > 编程语言 > Java开发

SpringBoot中SSL配置

2017-07-13 14:15 357 查看




1.生成证书



这时在当前用户目录下生成了一个 .keystore文件,这就是我们要用的证书。

2.SpringBoot配置SSL

在src/main/resources/static下添加一个index.html,将 .keystore文件复制到项目的根目录,然后在application.properties下添加以下SSL配置:

server.port=8443

server.ssl.key-store=.keystore

server.ssl.key-store-password=easted

server.ssl.keyStoreTypes=JKS

server.ssl.keyAlias=tomcat

此时启动springboot,控制台输出如下效果:



此时访问https://localhost:8443,如下所示:



3.http转向https

在地址栏输入http会自动转向https,要实现此功能,需配置TomcatEmbeddedServletContainerFactory,并添加Tomcat的Connector实现。

@SpringBootApplication
public class ThymeleafApplication {

public static void main(String[] args) {
SpringApplication.run(ThymeleafApplication.class, args);
}
//http转https
@Bean
public EmbeddedServletContainerFactory servletContainer(){
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(){
protected void postProcessContext(org.apache.catalina.Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection securityCollection = new SecurityCollection();
securityCollection.addPattern("/*");
securityConstraint.addCollection(securityCollection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
}
@Bean
public Connector httpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}


此时启动SpringBoot,控制台如下显示:



此时访问http://localhost:8080会自动转到https://localhost:8443
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SpringBoot