spring-boot配置ssl證書

一。首先我們要先有一個簡單的spring-boot項目:原先已經寫過一篇創建spring-boot的文章了

二、獲得ssl證書:方法不唯一,又從網上的大平臺下載也能自己生成。自己生成的也寫過了

三、在spring-boot項目中配置。配置分四步。

1.將得到的ssl證書放在項目的根目錄下。如圖:

2.在application.properties文件中配置

server.port=8443
server.ssl.key-store=tomcat.keystore
server.ssl.key-store-password=tomcat
server.ssl.keyStoreType=JKS
server.ssl.keyAlias=tomcat

說明下:

     8443:指的是你https的請求端口(不固定,可以改)

     tomcat.keystore :值得是你證書的路徑,因爲在根目錄下所以就只有文件名

     password:這是你密鑰的密碼

     storeType:這是你ssl證書的標準(還有一種PKCS12)

     keyAlias:是你密鑰庫的密碼

注:password最好和keyAlias保持一致,不然出錯我也沒辦法,誰有解決方法麻煩告知我下。

配置好後,啓動你的spring-boot就可以看效果了。

看到這不要慌,點擊高級。

就成功訪問到了。

其實這就已經好了,只是chrome還是提示證書不安全,是因爲我用的證書是我自己生成的它是不認的。Chrome只認大平臺頒發的。

上面就是使用ssl證書,接下來說說,如何讓用戶請求http:8080端口然後自動跳轉到https的8443端口。

想要讓8080端口的請求自動跳轉到https:8443端口的話我們要怎麼搞?

思路是這樣的:

首先我們得知道8080端口被請求了,所以我們得監聽8080端口得到用戶的請求。那我們拿到了用戶的請求又怎麼才能跳轉到我們指定的端口呢?

有些同學應該已經有思路了~~重定向。

 但是在springboot就很簡單了。

在你的啓動類中加入如下代碼就ok了:

/**
     * http重定向到https
     * @return
     */
    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = 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);
            }
        };
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;
    }

@Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        //Connector監聽的http的端口號
        connector.setPort(8080);
        connector.setSecure(false);
        //監聽到http的端口號後轉向到的https的端口號
        connector.setRedirectPort(8443);
        return connector;
    }

把段代碼加上就可以直接啓動了。是不是簡單粗暴?對這兩段代碼不清楚?嘿嘿我也不清楚,等我研究下就發文章並把鏈接更新到這個文章上。不過現在就已經實現了跳轉,當然如果你又強迫症可以用大平臺的證書就不會被chrome認爲不安全了

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章