使用 JDBC 驱动程序通过 SSL 连接到 Aerospike 主机,默认端口为 3000

问题描述 投票:0回答:1

我正在尝试连接到需要 SSL 的 aerospike 主机。通过 aql 命令连接工作正常。但是使用 JDBC 驱动程序连接到相同的端口失败。

运行以下命令即可成功连接aerospike

aql -h test-host.co.in:tls1:4333 --tls-enable --tls-cafile ~/certificates/aerospike-server-ca.pem

但是,当我尝试使用 aerospike JDBC 驱动程序使用 JDBC 连接字符串进行连接时,连接失败。 这是我使用的jdbc连接字符串

jdbc:aerospike:ssl://test-host.co.in:4333?enableTLS=true&trustStorePath=~/certificates/aerospike-server-ca.pem

提示无法连接到 ssl 3000 的错误。我的 JDBC 字符串是否有问题?我尝试通过 Datagrip 和 DBeaver 使用此功能,但在这两个软件上都遇到了相同的错误。为什么在明确指定 4333 端口时甚至默认为 3000 端口?

 Failed to connect to [1] host(s): ssl 3000
jdbc dbeaver aerospike datagrip
1个回答
0
投票

您的配置可能存在一些问题。从您的 AQL 行来看,您的证书的名称似乎是“tls1”,因此您需要使用

&tlsName=tls1
将其传递给 JDBC 驱动程序。您拥有的
trustStorePath
无效,我相信您正在寻找的参数是
tlsTruststorePath
。您可以在AerospikeTLSPolicyConfig查看有效值的完整列表。

所以我会考虑使用类似于以下的 JDBC 连接字符串:

jdbc:aerospike://test-host.co.in:4333?enableTLS=true&tlsTruststorePath=~/certificates/aerospike-server-ca.pem&tlsName=tls1

但是,我也相信配置使用标准 Java 密钥库(.jks 文件)而不是 .pem 文件。您应该能够使用 https://www.baeldung.com/convert-pem-to-jks 中显示的技术将 PEM 文件转换为 JKS 文件。

注意:根据您的 AQL 行,我假设您没有执行 mTLS,因此不需要向服务器提供客户端证书。

© www.soinside.com 2019 - 2024. All rights reserved.