您好,登錄后才能下訂單哦!
本文介紹如何在Spring Boot中,使用Https提供服務,并將Http請求自動重定向到Https。
Https證書
巧婦難為無米之炊,開始的開始,要先取得Https證書。你可以向證書機構申請證書,也可以自己制作根證書。
創建Web配置類
在代碼中創建一個使用了Configuration注解的類,就像下面這段代碼一樣:
@Configuration public class WebConfig { //Bean 定義... }
配置Https
在配置類中添加EmbeddedServletContainerCustomizer Bean,并在其中配置Https證書和端口號。
@Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return new EmbeddedServletContainerCustomizer() { @Override public void customize(ConfigurableEmbeddedServletContainer container) { Ssl ssl = new Ssl(); //Server.jks中包含服務器私鑰和證書 ssl.setKeyStore("server.jks"); ssl.setKeyStorePassword("123456"); container.setSsl(ssl); container.setPort(8443); } }; }
配置Http使其自動重定向到Https
Embedded默認只有一個Connector,要在提供Https服務的同時支持Http,需要添加一個Connector。在配置類中添加如下配置:
@Bean public EmbeddedServletContainerFactory servletContainerFactory() { TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory() { @Override protected void postProcessContext(Context context) { //SecurityConstraint必須存在,可以通過其為不同的URL設置不同的重定向策略。 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; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。