詳解在Spring Boot中使用Https
本文介紹如何在Spring Boot中,使用Https提供服務(wù),并將Http請(qǐng)求自動(dòng)重定向到Https。
Https證書(shū)
巧婦難為無(wú)米之炊,開(kāi)始的開(kāi)始,要先取得Https證書(shū)。你可以向證書(shū)機(jī)構(gòu)申請(qǐng)證書(shū),也可以自己制作根證書(shū)。
創(chuàng)建Web配置類(lèi)
在代碼中創(chuàng)建一個(gè)使用了Configuration注解的類(lèi),就像下面這段代碼一樣:
@Configuration public class WebConfig { //Bean 定義... }
配置Https
在配置類(lèi)中添加EmbeddedServletContainerCustomizer Bean,并在其中配置Https證書(shū)和端口號(hào)。
@Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return new EmbeddedServletContainerCustomizer() { @Override public void customize(ConfigurableEmbeddedServletContainer container) { Ssl ssl = new Ssl(); //Server.jks中包含服務(wù)器私鑰和證書(shū) ssl.setKeyStore("server.jks"); ssl.setKeyStorePassword("123456"); container.setSsl(ssl); container.setPort(8443); } }; }
配置Http使其自動(dòng)重定向到Https
Embedded默認(rèn)只有一個(gè)Connector,要在提供Https服務(wù)的同時(shí)支持Http,需要添加一個(gè)Connector。在配置類(lèi)中添加如下配置:
@Bean public EmbeddedServletContainerFactory servletContainerFactory() { TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory() { @Override protected void postProcessContext(Context context) { //SecurityConstraint必須存在,可以通過(guò)其為不同的URL設(shè)置不同的重定向策略。 SecurityConstraint securityConstraint = new SecurityConstraint(); securityConstraint.setUserConstraint("CONFIDENTIAL"); SecurityCollection collection = new SecurityCollection(); collection.addPattern("/*"); securityConstraint.addCollection(collection); context.addConstraint(securityConstraint); } }; factory.addAdditionalTomcatConnectors(createHttpConnector()); return factory; } private Connector createHttpConnector() { Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setSecure(false); connector.setPort(8080); connector.setRedirectPort(8443); return connector; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 基于springboot設(shè)置Https請(qǐng)求過(guò)程解析
- spring boot配置ssl實(shí)現(xiàn)HTTPS的方法
- Spring Boot實(shí)現(xiàn)Undertow服務(wù)器同時(shí)支持HTTP2、HTTPS的方法
- springboot配置https訪(fǎng)問(wèn)的方法
- SpringBoot2.0如何啟用https協(xié)議
- Spring boot通過(guò)HttpSessionListener監(jiān)聽(tīng)器統(tǒng)計(jì)在線(xiàn)人數(shù)的實(shí)現(xiàn)代碼
- springboot添加https服務(wù)器的方法
- 詳解SpringBoot初始教程之Tomcat、Https配置以及Jetty優(yōu)化
- Spring Boot支持HTTPS步驟詳解
相關(guān)文章
SpringBoot JVM參數(shù)調(diào)優(yōu)方式
這篇文章主要介紹了SpringBoot JVM參數(shù)調(diào)優(yōu)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09解決java執(zhí)行cmd命令調(diào)用ffmpeg報(bào)錯(cuò)Concat error - No such filter ''[0,0]
這篇文章主要介紹了java執(zhí)行cmd命令,調(diào)用ffmpeg報(bào)錯(cuò)Concat error - No such filter '[0,0]'解決方法,本文通過(guò)截圖實(shí)例代碼說(shuō)明給大家介紹的非常詳細(xì),對(duì)大家的工作或?qū)W習(xí)有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03JAVA使用SimpleDateFormat類(lèi)表示時(shí)間代碼實(shí)例
這篇文章主要介紹了JAVA使用SimpleDateFormat類(lèi)表示時(shí)間代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04org.springframework.web.client.ResourceAccessException資源訪(fǎng)問(wèn)錯(cuò)誤
本文主要介紹了org.springframework.web.client.ResourceAccessException資源訪(fǎng)問(wèn)錯(cuò)誤的解決方法,首先需要分析異常的詳細(xì)信息,以確定具體的錯(cuò)誤原因,感興趣的可以了解一下2024-05-05spring boot定時(shí)任務(wù)接收郵件并且存儲(chǔ)附件的方法講解
今天小編就為大家分享一篇關(guān)于spring boot定時(shí)任務(wù)接收郵件并且存儲(chǔ)附件的方法講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03解決IntelliJ?IDEA輸出中文顯示為問(wèn)號(hào)問(wèn)題的有效方法
最近剛學(xué)到文件字節(jié)流這里,但輸出中文時(shí),出現(xiàn)了控制臺(tái)輸出問(wèn)號(hào)的情況,所以下面這篇文章主要給大家介紹了關(guān)于如何解決IntelliJ?IDEA輸出中文顯示為問(wèn)號(hào)問(wèn)題的有效方法,需要的朋友可以參考下2022-07-07SpringBoot生成PDF的五種實(shí)現(xiàn)方法總結(jié)
這篇文章主要介紹了SpringBoot生成PDF的五種實(shí)現(xiàn)方法,在開(kāi)發(fā)中經(jīng)常會(huì)遇到需要進(jìn)行對(duì)一些數(shù)據(jù)進(jìn)行動(dòng)態(tài)導(dǎo)出PDF文件,然后讓用戶(hù)自己選擇是否需要打印出來(lái),這篇文章我們來(lái)介紹五種實(shí)現(xiàn)方法,需要的朋友可以參考下2024-10-10學(xué)習(xí)Java正則表達(dá)式(匹配、替換、查找)
這篇文章主要介紹了Java正則表達(dá)式的匹配、替換、查找和切割等操作,對(duì)于正則表達(dá)式的匹配、替換大家已經(jīng)不陌生了吧2015-12-12