SpringBoot配置SSL證書
阿新 • • 發佈:2020-12-09
1.將檔案放入resources資料夾下
2.配置application檔案
這樣配置啟動就是https請求才能訪問了,如果不設定埠號預設埠號為443 (截圖的時候我將ssl證書給關閉了,要開啟記得enable設為true)
3.錯誤Caused by: java.io.IOException: Invalid keystore format
在配置完SSL證書的配置後我啟動一直在報Caused by: java.io.IOException: Invalid keystore format錯誤
這個錯誤是因為maven編譯了我們的加密檔案需要在pom檔案加上
<!--解決增加ssl證書報Invalid keystore format問題--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <nonFilteredFileExtensions> <!--這裡是檔案字尾--> <nonFilteredFileExtension>pfx</nonFilteredFileExtension> </nonFilteredFileExtensions> </configuration> </plugin>
4.設定http請求轉https
@Configuration public class MonitorConfig { @Bean TomcatServletWebServerFactory tomcatServletWebServerFactory() { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(){ @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); } }; factory.addAdditionalTomcatConnectors(createTomcatConnector());return factory; } private Connector createTomcatConnector() { Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setPort(8083); connector.setSecure(false); connector.setRedirectPort(8096); return connector; }
這個配置有個問題
在網頁訪問是沒有問題的
執行後,被重定向到https的埠了,因為我這個是本地啟動的專案所以顯示不安全
但是在postman訪問是有問題的,同樣訪問http的路徑但是他不會重定向到https