使用SpringBoot配置https(SSL證書)

SpringBoot配置https(SSL證書)

最近在做微信小程序,https是必須條件

僅需三步

SpringBoot2.x版本

對比一下這個小鎖頭是不是莫名有點好看?

在這裡插入圖片描述

在這裡插入圖片描述

嚶為很久以前就備案有域名,就直接申請瞭SSL證書,幾分鐘就下來瞭

在這裡插入圖片描述

1.把tomcat目錄裡面的.jks文件

復制到項目裡面(註意路徑)

在這裡插入圖片描述

2.配置application.yml

  ssl:
    key-store: classpath:server.jks
    key-store-password: 申請時設置的密碼
    keyStoreType: JKS

在這裡插入圖片描述

3.接下來是重定向

在啟動類底下添加;(把指定的http8080端口重定向到https8888)

@Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
        return tomcat;
    }
    private Connector createHTTPConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        //同時啟用http(8080)、https(8443)兩個端口
        connector.setScheme("http");
        connector.setSecure(false);
        connector.setPort(8080);
        connector.setRedirectPort(443);
        return connector;
    }

在這裡插入圖片描述

ok

SpringBoot 改造成https訪問

SpringBoot https改造

1.生成密鑰證書

生成命令:keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650

(1)關鍵字解釋:

alias:密鑰別名

storetype:指定密鑰倉庫類型

keyalg:生證書的算法名稱,RSA是一種非對稱加密算法

keysize:證書大小

keystore:生成的證書文件的存儲路徑

validity:證書的有效期

(2)生成證書註意:

在輸入證書生成命令之後,會提示輸入:

  • 密鑰庫口令:證書密碼,在後面的項目中配置證書時用到
  • 姓氏:一般沒什麼用,在瀏覽器中查看證書時會顯示,用於正式場合的證書還是需要填寫標準。
  • 組織單位:證書使用單位信息,一般沒什麼用,在瀏覽器中查看證書時會顯示,用於正式場合的證書還是需要填寫標準。
  • 組織單位名稱:證書使用單位名稱,一般沒什麼用,在瀏覽器中查看證書時會顯示,用於正式場合的證書還是需要填寫標準。
  • 所在的城市或區域名稱:瀏覽器中查看證書信息時會顯示。
  • 所在的省/市/自治區名稱:瀏覽器中查看證書信息時會顯示。
  • 單位的雙字母國傢/地區代碼:國傢或地區編碼,瀏覽器中查看證書信息時會顯示。

2.將生成的密鑰證書拷貝到項目中的resource中

也可以不拷貝到項目中,後面配置路徑時配置密鑰證書的絕對路徑即可

3.修改項目配置文件application.properties

增加如下配置項:

  • server.ssl.key-store=classpath:keystore.p12 (密鑰文件路徑,也可以配置絕對路徑)
  • server.ssl.key-store-password=aqjcpt (密鑰生成時輸入的密鑰庫口令)
  • server.ssl.keyStoreType=PKCS12 (密鑰類型,與密鑰生成命令一致)
  • server.ssl.keyAlias=tomcat (密鑰別名,與密鑰生成命令一致)

4.啟動項目,直接訪問項目即可

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: