springboot允許https和http同時訪問


步驟如下

  • 首先得有ssl證書
  我是在阿里雲上申請的,申請比較簡單,百度上一大堆.
申請好之后下載相應的文件,我下載的是tomcat的.解壓到
相應的文件夾,之后通過dos命令行轉到此路徑.運行代碼.
  • 運行命令如下
keytool -importkeystore -srckeystore 1314xxx.pfx -destkeystore 1314.jks -srcstoretype PKCS12 -deststoretype JKS
說明:
1314xxx.pfx:是你從阿里雲上下載解壓得到的文件
1314.jks:這是你要生成的文件,也是終極文件(放到application.yml或者application.properties同等級目錄下)
回車過程會讓你輸入三次密碼(解壓文件里面有,盡量復制,三次都要一樣)
  • 配置application.yml文件
http:
  port: 8080(http端口)


server:
  port: 8888(https端口)
  ssl:
    key-store: classpath:1314.jks(1314是我命的名字,上面已經說明)
    key-store-password: password(解壓文件里面有和上面輸入一樣)
    key-store-type: JKS(看看你1314.jks后綴名就知道了)
    key-alias: alias
  • springboot的主程序代碼如下

@SpringBootApplication
public class Application{

  @Value("${http.port}")
  private Integer port;

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }

//前面基本一致,只不過注入了一個http端口,主要改下面
  @Bean
  public ServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
    return tomcat;
  }
  // 配置http
  private Connector createStandardConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setPort(port);
    return connector;
  }

}


免責聲明!

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



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