怎樣使用Spring Boot 整合配置 HTTPS
導讀 | HTTPS (全稱:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全為目標的 HTTP 通道,在HTTP的基礎上透過傳輸加密和身份認證保證了傳輸過程的安全性。 |
多了個 S,其實 S 表示 TLS、SSL。因此 HTTP 的基礎架構如圖所示:
HTTP協議(HyperText Transfer Protocol),即超文字傳輸協議是用於伺服器傳輸到客戶端瀏覽器的傳輸協議。Web上,伺服器和客戶端利用HTTP協議進行通訊會話。那整合 HTTPS ,簡單來說,修改 Tomcat 容器配置,加一層對應的安全約束配置即可。
開啟阿里雲證照,可以申請免費一年。一年後繼續免費申請一年即可。
下載,這塊選擇 Tomcat ,因為這次整合只需要修改 Spring Boot 內嵌容器 Tomcat 配置。如果是 nginx ,也可以對應下載並整合配置
在證照控制檯下載Tomcat版本證照,下載到本地的是一個壓縮檔案,解壓后里麵包含.pfx檔案是證照檔案,pfx_password.txt是證照檔案的密碼。
另外兩種配置模式:
PFX證照安裝
JKS證照安裝
本文使用 PFX證照安裝。
將 .pfx 檔案複製到 resources 根目錄,然後配置 application-prod.properties (生產配置檔案):
#HTTPS
server.ssl.key-store=classpath:xx.com.pfx server.ssl.key-store-password=123456 server.ssl.key-store-type=PKCS12 server.port=443
配置項如下:
server.port HTTPS 加密埠 server.ssl.key-store SSL證照路徑 server.ssl.key-store-password SSL證照密碼 server.ssl.key-store-type 證照型別
然後新增 HttpsConfig 類,程式碼如下
public class HttpsConfig { /** * spring boot 1.x */ /* */ @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); } }; return tomcat; } }
執行即可,從日誌看出已經支援 HTTPS:
2019-06-16 10:42:42.989 INFO 16727 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 443 (https) 2019-06-16 10:42:45.782 INFO 16727 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 443 (https)
注意點:
這是 1.x 的配置,2.x 版本有所不同
https 預設埠號是 443。本機環境會埠占用可以改成 8080 等
如果一臺機器兩個 HTTPS 服務,那麼可以透過 setRedirectPort 進行操作
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2715746/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用Spring Boot整合Apollo配置中心Spring Boot
- 非spring boot (即spring) 使用/整合 Spring cloud Config 分散式配置中心Spring BootCloud分散式
- 使用Spring Boot整合ConsulSpring Boot
- 使用Spring Boot實現資料庫整合配置案例Spring Boot資料庫
- Spring Boot整合swagger使用教程Spring BootSwagger
- Spring Boot 整合 Freemarker,50 多行配置是怎麼省略掉的?Spring Boot
- springboot(十八):使用Spring Boot整合FastDFSSpring BootAST
- Spring Boot整合Spring BatchSpring BootBAT
- Spring Boot整合Spring AopSpring Boot
- Spring Boot整合Spring SecuritySpring Boot
- 怎樣使用Spring Boot專案的單元測試Spring Boot
- 怎樣使用Spring Boot專案的單元測試?Spring Boot
- Spring Boot系列十九 Spring boot整合 swaggerSpring BootSwagger
- Spring Boot 2.0(八):Spring Boot 整合 MemcachedSpring Boot
- Spring Boot:Spring Boot配置SwaggerSpring BootSwagger
- Spring Boot:Spring Boot配置MybatisSpring BootMyBatis
- Spring Boot實戰系列(7)整合Consul配置中心Spring Boot
- Spring Boot 整合 KafkaSpring BootKafka
- Spring Boot 整合 MyBatisSpring BootMyBatis
- Spring Boot整合SwaggerSpring BootSwagger
- Spring Boot整合rabbitmqSpring BootMQ
- Spring Boot整合RedisSpring BootRedis
- Spring Boot 整合redisSpring BootRedis
- Spring Boot 整合 rabbitmqSpring BootMQ
- Spring Boot 整合 elasticsearchSpring BootElasticsearch
- Spring Boot 整合 dockerSpring BootDocker
- Spring Boot 整合 elkSpring Boot
- Spring Boot 整合 ApolloSpring Boot
- spring boot整合shiroSpring Boot
- spring boot整合jooqSpring Boot
- spring boot整合HadoopSpring BootHadoop
- Spring Boot整合SocketSpring Boot
- Spring boot學習(三) Spring boot整合mybatisSpring BootMyBatis
- Spring boot學習(四)Spring boot整合DruidSpring BootUI
- Spring Boot:整合Spring Data JPASpring Boot
- Spring Boot系列十七 Spring Boot 整合 websocket,使用RabbitMQ做為訊息代理Spring BootWebMQ
- spring boot使用註解的方式整合mybaitsSpring BootAI
- Spring Boot & 配置Spring Boot