使用 JDBC 瘦客户端通过 SSL 连接到 Ignite 集群
Posted
技术标签:
【中文标题】使用 JDBC 瘦客户端通过 SSL 连接到 Ignite 集群【英文标题】:Connect to Ignite Cluster over SSL using JDBC Thin Client 【发布时间】:2020-02-15 06:23:27 【问题描述】:虽然,我已经在所有 Ignite 节点之间设置了 SSL,并且整个 Ignite 集群是安全的,但我能够通过 JDBC 瘦客户端访问数据,而无需传递任何 SSL 配置。这是否意味着尽管集群是安全的,但我们可以在不通过任何 ssl 配置/证书的情况下进行连接?
我希望没有人可以连接到 Ignite 集群,除非提供所需的 ssl 证书,这是否可能实现?
【问题讨论】:
【参考方案1】:您需要为瘦协议显式启用 SSL:
https://www.gridgain.com/docs/latest/developers-guide/thin-clients/getting-started-with-thin-clients#enabling-ssltls-for-thin-clients
<property name="clientConnectorConfiguration">
<bean class="org.apache.ignite.configuration.ClientConnectorConfiguration">
<property name="sslEnabled" value="true"/>
</bean>
</property>
【讨论】:
您还需要为ConnectorConfiguration
和 REST(如果使用)启用 SSL 以覆盖所有基础。
@Michael 添加以下属性后,尝试访问 JDBC 瘦客户端时出现以下错误错误:无法连接到 Ignite 集群 [url=jdbc:ignite:thin://node1.example.com :10800/PUBLIC] (state=08001,code=0) 原因:java.io.IOException: 读取传入消息失败(数据不足)。
@sandipbhowmik 这意味着现在 SSL 已启用,您需要在连接字符串中向您的 jdbc 客户端提供 ssl 证书,如下所示:“jdbc:ignite:thin://127.0.0.1/?sslMode=要求" + "&sslClientCertificateKeyStoreUrl=" + "path/to/certifficate.jks" + "&sslClientCertificateKeyStorePassword=password" + "&sslTrustCertificateKeyStoreUrl=" + "path/to/trustCerts.jks" + "&sslTrustCertificateKeyStorePassword=password"以上是关于使用 JDBC 瘦客户端通过 SSL 连接到 Ignite 集群的主要内容,如果未能解决你的问题,请参考以下文章
通过 JDBC 连接到 postgres 服务器时 sslmode 参数的默认值?
通过带有 SSL 的 JDBC 连接到 Google Cloud PostgreSQL