Spring Boot SSL настроен, сервер включен, но не может подключиться к порту

Я пробовал загрузочное приложение с последней версией, хотел защитить остальные api ssl, я сделал ниже Создано хранилище ключей и помещено в путь к классам проекта, сервер запустился, нет проблем с запуском, но не может отправить запрос 8080 или 8443, ниже представлена ​​конфигурация,

server.ssl.key-store=KeyStore.p12 server.ssl.key-store-password=shashank server.ssl.key-alias=mydomain server.ssl.key-password=shashank

@Bean
   public TomcatServletWebServerFactory servletContainer() {
      TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
   @Override
   protected void postProcessContext(Context context) {
   SecurityConstraint securityConstraint = new SecurityConstraint();
   securityConstraint.setUserConstraint("CONFIDENTIAL");
   SecurityCollection collection = new SecurityCollection();
   collection.addPattern("/*");
   securityConstraint.addCollection(collection);
   context.addConstraint(securityConstraint);
   }
   };
   tomcat.addAdditionalTomcatConnectors(getHttpConnector());
   return tomcat;
   }

  private Connector getHttpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("https");
        connector.setPort(8080);
        connector.setSecure(true);
        connector.setRedirectPort(8443);

}

INFO 84898 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8443 (https) 8080 (https) with context path '/event-processing'

поскольку это самозаверяющий сертификат, в нем говорится, что «этот сертификат не подтвержден третьей стороной».

Цель состоит в том, чтобы сделать https для всех остальных API введите описание изображения здесь

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
357
2

Ответы 2

Попробуйте эти изменения:

Измените application.properties, чтобы изменить значение параметра server.ssl.key-store на keystore.p12 из KeyStore.p12

server.ssl.key-store: keystore.p12

Добавьте bean-компонент TomcatEmbeddedServletContainerFactory в класс @Configuration (любой).

 @Bean
  public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
        @Override
        protected void postProcessContext(Context context) {
          SecurityConstraint securityConstraint = new SecurityConstraint();
          securityConstraint.setUserConstraint("CONFIDENTIAL");
          SecurityCollection collection = new SecurityCollection();
          collection.addPattern("/*");
          securityConstraint.addCollection(collection);
          context.addConstraint(securityConstraint);
        }
      };

    tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
    return tomcat;
  }

  private Connector initiateHttpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    connector.setPort(8080);
    connector.setSecure(false);
    connector.setRedirectPort(8443);

    return connector;
  }

Я столкнулся с этой проблемой с самоподписанным сертификатом и решил ее, создав сертификат на сервере, а не на моем локальном компьютере, поэтому вам следует запустить команду keytool, которая создает сертификат на сервере, и использовать этот сгенерированный файл .p12 в ваш проект и все будет работать так, как ожидалось.

Другие вопросы по теме