本篇文章為大家展示了Spring Boot 中怎么支持 HTTPS,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的寧遠網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
Spring Boot 配置 SSL 很簡單,只需要通過一系列的 server.ssl.*
參數(shù)即可完成配置,如下所示。
application.properties 配置文件參考配置:
server.port=8443 server.ssl.protocol=TLS server.ssl.key-store=classpath:javastack.keystore server.ssl.key-store-password=javastack server.ssl.key-store-type=JKS
如何在本地測試創(chuàng)建證書請參考Java技術棧微信公眾號的這篇文章《一分鐘開啟Tomcat https支持》,把生成完的證書復制到 Spring Boot 項目中的 resources 目錄即可。
這邊只是提供了一個 SSL 單向驗證的演示,更多 SSL 參數(shù)配置如下。
server.ssl.ciphers= # Supported SSL ciphers. server.ssl.client-auth= # Whether client authentication is wanted ("want") or needed ("need"). Requires a trust store. server.ssl.enabled= # Enable SSL support. server.ssl.enabled-protocols= # Enabled SSL protocols. server.ssl.key-alias= # Alias that identifies the key in the key store. server.ssl.key-password= # Password used to access the key in the key store. server.ssl.key-store= # Path to the key store that holds the SSL certificate (typically a jks file). server.ssl.key-store-password= # Password used to access the key store. server.ssl.key-store-provider= # Provider for the key store. server.ssl.key-store-type= # Type of the key store. server.ssl.protocol=TLS # SSL protocol to use. server.ssl.trust-store= # Trust store that holds SSL certificates. server.ssl.trust-store-password= # Password used to access the trust store. server.ssl.trust-store-provider= # Provider for the trust store. server.ssl.trust-store-type= # Type of the trust store.
參數(shù)對應的類:org.springframework.boot.web.server.Ssl
上面的例子配置后就能開啟 HTTPS 了,默認的 HTTP 協(xié)議就不再支持了,Spring Boot 不支持以配置文件配置的方式同時支持 HTTP 和 HTTPS。
如果你需要同時支持 HTTP 和 HTTPS 這兩個協(xié)議,就需要把另外一個協(xié)議用程序化的方式來配置。因為通過程序的方式配置 HTTP 協(xié)議更加簡單一點,所以,Spring Boot 推薦的做法是把 HTTPS 配置在配置文件,HTTP 通過程序來配置。
來,下面示例就是通過程序的方式來額外支持 HTTP 協(xié)議。
@SpringBootApplication public class JavastackApplication { @Bean public ServletWebServerFactory servletContainer() { TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); tomcat.addAdditionalTomcatConnectors(createStandardConnector()); return tomcat; } private Connector createStandardConnector() { Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setPort(8080); return connector; } public static void main(String[] args) { SpringApplication.run(JavastackApplication.class, args); } }
啟動 Spring Boot 之后就會看到下面的同時支持兩個協(xié)議日志。
Tomcat started on port(s): 8443 (https) 8080 (http) with context path '/'
上述內容就是Spring Boot 中怎么支持 HTTPS,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。