1. 程式人生 > 實用技巧 >SpringBoot配置SSL證書

SpringBoot配置SSL證書

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