Quarkus 反应式数据源 SSL 握手时出错

Error on Quarkus reactive datasource SSL handshake

我正在使用 Quarkus 1.13.3.FINAL,但在部署我的应用程序时,我在反应式数据源运行状况检查方面遇到了问题。 我同时使用了 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 存储库,不得不求助于被动数据源。

我是否缺少某些配置?

我遇到了同样的问题(堆栈完全相同)。在 Zulip and the official documentation 上找到了一些线索。所要做的就是在反应数据库 url:

上添加 trust-all 配置和 ssl 模式
quarkus.datasource.reactive.trust-all=true
quarkus.datasource.reactive.url=postgresql://<host>:5432/<database>?sslmode=verify-ca