Завершение mTLS в платформе Vertx на основе Java

#java #ssl #routes #tls1.2 #vert.x

#java #ssl #маршруты #tls1.2 #vert.x

Вопрос:

У меня есть проект, основанный на Vertx платформе на основе Java, где у меня мало внутренних вызовов API. Итак, у меня есть API, открытый в порту XXXX (с настроенным TLS — HTTPS ), и внутри этого вызова API я вызываю другой балансировщик нагрузки, который находится внутри HTTP . Итак, мне нужно завершить MTLS перед вызовом балансировщика нагрузки Http.

Ниже приведен пример фрагмента для POST вызова VertX:

 private void handleDownstreamRequest(RoutingContext routingContext, String downstreamUrl) {
        VertxUtil.assertOnVertxEventLoop();
        client.postAbs(downstreamUrl) // POST request
            .sendJson(
                routingContext.getBody(),
                ar -> {
                    asyncHttpResponseHandler(ar, routingContext);
                });
    }
  

Я хотел знать, как завершить TLS в Vertx Framework. Существует ли какая-либо встроенная библиотека, предоставляемая Vertx для завершения MTLS, или любой пример фрагмента кода также поможет.

Ответ №1:

Настройка HTTP-сервера для Вы можете настроить HTTP-сервер на использование центра сертификации для проверки подлинности клиентов:

 HttpServerOptions options = new HttpServerOptions()
  .setSsl(true)
  .setClientAuth(ClientAuth.REQUIRED)
  .setTrustStoreOptions(
    new JksOptions()
      .setPath("/path/to/your/truststore.jks")
      .setPassword("password-of-your-truststore")
  );
HttpServer server = vertx.createHttpServer(options);
  

В приведенном выше примере предполагается, что у вас есть хранилище доверия Java, но Vert.x также поддерживает форматы PFX / PEM.

Комментарии:

1. поможет ли это прервать соединение mTLS?