← 文章归档11-Spring Boot HTTPS
发布 约 6 分钟阅读阅读 — 次
Spring HTTPS
- 在正常的应用场景之下,HTTPS请求会使得我们的应用程序更加安全。
1. SSL证书
- SSL证书是使用HTTPS请求中必不可少的一部分
1.1. 自制HTTPS证书
- KeyTool(Java自带):
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
- storetype 指定密钥仓库类型
- keyalg 生证书的算法名称,RSA是一种非对称加密算法
- keysize 证书大小
- keystore 生成的证书文件的存储路径
- validity 证书的有效期
1.2. 阿里云等证书
- 阿里云、腾讯云等购买了服务器都可以申请免费SSL证书,免费证书大致是够用的
- 阿里云免费ssl证书(PFX格式证书)安装
1.3. 证书的位置
- 放置到项目的根目录上。
2. POM文件设置
1 2 3 4 5 6 7
| server: port: 8000 ssl: key-store: keyname.suffix enabled: true key-store-password: password key-store-type: JKS
|
3. HTTP自动转换HTTPS请求
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| @RestController @SpringBootApplication public class TestApplication {
public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } @Bean public EmbeddedServletContainerFactory servletContainer() { 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"); connector.setPort(8080); connector.setSecure(false); connector.setRedirectPort(8081); return connector; }
}
|
4. 参考
- Spring Boot支持HTTPS请求
评论