Java学习笔记01

SpringBoot配置SSL协议

1.生成证书

使用keytool工具

输入指令 keytool -genkey -alias tomcat

根据提示回答问题操作 其中双字母国家/地区代码是?回答:86 

最后确认信息 输入:y    表示yes

在当前目录下生成一个.keystore文件,这个就是证书文件,将这个文件放入到项目的根目录,

2.在application.properties中配置SSL的配置

server.port=8443

server.ssl.key-store=.keystore

server.ssl.key-store-password=123456

server.ssl.key-store-type=JKS

server.ssl.key-alias=tomcat

其中password为自己设置的密码

添加一个index.html到src/main/resources/static中作为测试

启动springboot 输入:https://localhost:8443 

显示index页面

3.http重定向https

需要配置TomcatEmbeddedServletContainerFactory,并添加Tomcat的connector来实现

如下所示

@SpringBootApplication

public classCh01Application {

public static voidmain(String[] args) {

SpringApplication.run(Ch01Application.class,args);

}

/**

* 设置http重定向https

*@return

*/

@Bean

publicEmbeddedServletContainerFactoryservletContainerFactory() {

TomcatEmbeddedServletContainerFactory tomcat =newTomcatEmbeddedServletContainerFactory() {

@Override

protected voidpostProcessContext(Context context) {

SecurityConstraint securityConstraint =newSecurityConstraint();

securityConstraint.setUserConstraint("CONFIDENTIAL");

SecurityCollection collection =newSecurityCollection();

collection.addPattern("/*");

securityConstraint.addCollection(collection);

context.addConstraint(securityConstraint);

}

};

tomcat.addAdditionalTomcatConnectors(httpConnector());

returntomcat;

}

@Bean

publicConnectorhttpConnector() {

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

connector.setScheme("http");

connector.setPort(8080);

connector.setSecure(false);

connector.setRedirectPort(8443);

returnconnector;

}

开启SpringBoot,输入localhost:8080 自动跳转到https://localhost:8443

你可能感兴趣的:(Java学习笔记01)