Spring Boot配置ssl證書啟用HTTPS協議


生成證書,可以使自簽名或者從SSL證書授權中心獲得的。
cmd進入JDK安裝目錄(D:\Java\jre1.8.0_181\bin),利用keytool證書管理工具,生成自簽名證書。
生成命令如下(找不到keytoo命令的先去配置java環境)
我指定的名字叫tomcat.keystore 別名叫tomcat,密碼自己設置,我這里用的tomcat,最后那個直接按得回車
keytoo命令:

keytool -genkey -alias tomcat -keyalg RSA -keystore D:/httpsKey/tomcat.keystore

  

 

 

 2.SpringBoot配置SSL
將生成的自簽名證書:tomcat.keystore拷貝到項目根目錄下,與application.yml同級,如下圖所示:

 

 

 

 

 3.配置application.yml

server:
  port: 8084
  ssl:
     key-store: classpath:tomcat.keystore #證書的路徑
     key-store-password: 123456 #證書密碼,請修改為您自己證書的密碼
     key-store-type: JKS #證書類型(秘鑰庫類型)
     key-alias: tomcat #證書別名
     enabled: true #開啟HTTPS

4.http訪問自動轉https訪問
在啟動類中添加如下兩個方法,更改tomcat配置

@EnableSwagger2
@ComponentScan(basePackages = "com.guodi")
@SpringBootApplication
public class Application
        extends SpringBootServletInitializer
{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
    /**
     * 將http請求變成https請求
     * @return
     */
    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createStandardConnector());
        return tomcat;
    }
    /**
     * 將http請求變成https請求
     * @return
     */
    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(8083);
        return connector;
    }
 
}

在啟動的時候就會發現兩個端口,一個https,與一個http


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM