当前位置 : 主页 > 编程语言 > java >

基于springboot设置Https请求过程解析

来源:互联网 收集:自由互联 发布时间:2021-04-30
1.首先去阿里云购买个证书,也有免费的,但是免费的只能使用一年,证书需要绑定域名 2.将证书放进项目 3.配置YML server: ssl: key-store: 55555.pfx key-store-password: 55555 keyStoreType: PKCS12 connec

1.首先去阿里云购买个证书,也有免费的,但是免费的只能使用一年,证书需要绑定域名

2.将证书放进项目

3.配置YML

server:
 ssl:
  key-store: 55555.pfx
  key-store-password: 55555
  keyStoreType: PKCS12
  connectionTimeout: 20000
 port: 8888

重点来了,配置请求转发

@Configuration
public class WebMvcconfig implements WebMvcConfigurer {

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

如果请求报错:java.lang.UnsatisfiedLinkError: org.apache.tomcat.jni.SSL.renegotiatePending(J)I问题

在pom.xml中加入

 <properties>
    <tomcat.version>9.0.12</tomcat.version>
  </properties>
<dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-juli</artifactId>
      <version>${tomcat.version}</version>
    </dependency>

然后运行,请求成功!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

网友评论