Ошибка квитирования SSL для реактивного источника данных Quarkus

я использую и у меня возникают проблемы с проверкой работоспособности моего реактивного источника данных при развертывании моего приложения. У меня используются как JDBC, так и реактивные источники данных. Вот как они устроены:

      %devops.quarkus.datasource.jdbc.url= jdbc:postgresql://<host>:5432/<database>?sslmode=require
%devops.quarkus.datasource.reactive.url= postgresql://<host>:5432/<database>
%devops.quarkus.datasource.reactive.postgresql.ssl-mode=require

Что меня смущает, так это то, что исключение указывает на ошибку подтверждения SSL для реактивного источника данных, но JDBC работает нормально. Кроме того, они оба отлично работают локально.

      2021-05-03 16:41:04,777 INFO  [io.sma.health] (vert.x-worker-thread-10) SRHCK01001: Reporting health down status: {"status":"DOWN","checks":[{"name":"Reactive PostgreSQL connections health check","status":"DOWN","data":{"<default>":"up"}},{"name":"Database connections health check","status":"UP"}]}
2021-05-03 16:41:14,572 SEVERE [io.ver.cor.net.imp.ConnectionBase] (vert.x-eventloop-thread-1) PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
2021-05-03 16:41:14,573 WARN  [io.qua.rea.dat.run.ReactiveDatasourceHealthCheck] (vert.x-eventloop-thread-1) Error obtaining database connection for healthcheck of datasource '<default>': io.vertx.core.VertxException: SSL handshake failed

Я читал, что реактивные источники данных и источники данных JDBC нельзя использовать одновременно, но это больше не так.

Мне нужен реактивный источник данных, потому что я использую клиент Vert.x RabbitMQ. Это дало мне реактивного потребителя, поэтому я больше не мог использовать свои репозитории JPA и вынужден был прибегнуть к реактивному источнику данных.

Есть какая-то конфигурация, которую мне не хватает?

1 ответ

Я столкнулся с той же проблемой (с точно таким же стеком). Нашел несколько подсказок по Zulip и официальной документации . Все, что потребовалось, - это добавить конфигурацию trust-all и режим ssl для URL-адреса реактивной базы данных:

      quarkus.datasource.reactive.trust-all=true
quarkus.datasource.reactive.url=postgresql://<host>:5432/<database>?sslmode=verify-ca
Другие вопросы по тегам