1. 程式人生 > >Spring Boot新增HTTPS服務

Spring Boot新增HTTPS服務

1  進入windows命令列輸入以下內容:

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650

①.-storetype 指定金鑰倉庫型別  ②.-keyalg 生證書的演算法名稱,RSA是一種非對稱加密演算法  ③.-keysize 證書大小  ④.-keystore 生成的證書檔案的儲存路徑  ⑤.-validity 證書的有效期

2  填寫資訊 

你的姓名、公司名稱,地址等,最後輸入:  是   +  enter

3  配置application.properties檔案:

server.ssl.key-store=keystore.p12 server.ssl.key-store-password=123456   #你自己的密碼 server.ssl.keyStoreType=PKCS12 server.ssl.keyAlias:tomcat

第一行指定簽名檔案,第二行指定簽名密碼,第三行指定金鑰倉庫型別,第四個是別名。

4  

@Bean
public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
        @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(8081);
    return connector;
}

這個時候當我們訪問http://localhost:8080的時候系統會自動重定向到https://localhost:8081這個地址上。