Spring Boot 配置 HTTPS 访问
生成证书
- 创建新证书
1 | keytool -genkeypair -alias hellowood -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore hellowood.p12 -validity 3650 |
这样就生成了 hellowood.p12这个证书
- 如果已经有一个证书,可以将该证书转换为 PKCS格式
1 | keytool -import -alias hellowood -file hellowood.crt -keystore hellowood.p12 |
配置 HTTPS
- 将
hellowood.p12添加到resources/下 - application.properties
1 | # SSL config |
- 添加接口
1 |
|
- 启动应用,会看到日志中有提示应用使用 HTTPS 启动
1 | 2018-12-31 21:54:07.940 INFO 24001 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (https) with context path '' |
- 访问
http://localhost:8080,会提示需要使用 HTTPS 进行访问
1 | curl http://localhost:8080/ |
- 访问
https://localhost:8080,会成功返回 HelloWood
1 | curl --insecure https://localhost:8080 |
重定向 HTTP 到 HTTPS
- 修改端口,添加 HTTP 端口 (application.properties)
1 | server.port=8443 |
- 添加重定向配置
ConnectorConfig.java
1 | import org.apache.catalina.Context; |
- 再次启动应用,看到日志中有 HTTP 和 HTTPS 的端口信息
1 | 2018-12-31 22:17:47.113 INFO 24612 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8443 (https) 8080 (http) with context path '' |
- 访问
http://localhost:8080,将会被重定向到https://localhost:8443
1 | curl -v http://localhost:8080 |
- 访问
https://localhost:8443正常返回HelloWood
1 | curl https://localhost:8443 --insecure |