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;
  }

}

posted @ 2020-04-04 15:10  JachinLin  阅读(1042)  评论(0编辑  收藏  举报