微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在没有密码的 SSL 模式下从 Spring Boot 应用程序连接 mariadb

如何解决如何在没有密码的 SSL 模式下从 Spring Boot 应用程序连接 mariadb

我已将 MariaDB 作为 pod 部署到 k8s 集群中。 DB 启用 SSL 模式,这将不允许用户/客户端在没有证书的情况下登录到 DB。所以我们不能使用用户名和密码登录数据库。我们必须只使用证书才能这样做。

用户创建声明:

CREATE USER 'test'@'%' REQUIRE X509;
GRANT ALL ON *.* TO 'test'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

所以我们在创建用户时没有使用任何密码。

登录数据库

MysqL -utest --ssl-key=/keys/peer-key.pem --ssl-cert=/certificates/peer.pem --ssl-ca=/ca/cacerts.pem

所以我尝试在 spring boot 应用端启用 mariadb 上的 SSL 模式,如下所示:

spring.datasource.url=jdbc:mariadb://IP:3306/myDB?useSSL=true&trustServerCertificate=true&serveRSSlCert=/certificates/peer.pem&disableSslHostnameVerification=true
spring.datasource.username=test
spring.datasource.password=
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver

但我收到一个错误

Current charset is UTF-8. If password has been set using other charset,consider using option 'passwordCharacterEncoding'

版本:

mariadb: MysqL  Ver 15.1 distrib 10.4.12-MariaDB,for Linux (x86_64) using readline 5.1
mariadb-java-client: 2.7.2
spring boot: 2.3.4

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。