通过 jdbc 连接器进行 SSl-TLS 加密。我可以关掉它吗?

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

必须通过 SSH 隧道连接到 MariaDB 数据库。 使用 putty 打开带有端口转发的隧道并收到错误消息

RSA public key is not available client side (option serverRsaPublicKeyFile not set)
。 数据库服务器提供商不支持 SSL/TLS 加密消息传递。 显然我的 jdbc 连接器默认加密,我应该将其关闭。 但如何呢?

在我的 Java 代码中添加了

encrypt=false

  url = "jdbc:mysql://" + databaseURI.trim() + "/" + databaseSchema+ "/encrypt=false";
  connection = DriverManager.getConnection(url, databaseUserName,
                    databasePassword);

根据我的数据库服务器提供商的建议 但没有结果。

java encryption jdbc mariadb ssh-tunnel
1个回答
0
投票

MySQL的默认身份验证方法是caching_sha2_password,需要RSA公钥。 RSA 公钥要么存储在客户端计算机上,要么可以在连接握手期间从服务器检索。

由于后一个选项不太安全,MySQL 的 JDBC 驱动程序默认禁用此选项。要启用此选项,您必须将

allowPublicKeyRetrieval=True
附加到您的连接网址。

我想知道为什么这个问题被标记为mariadb,因为MySQL JDBC连接器用于客户端,显然MySQL在服务器端(MariaDB不提供需要RSA公钥的身份验证方法)。

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