跳到主要内容
版本: 最新版本-3.5

SSL 身份验证

从 v3.4.1 版本开始,StarRocks 支持由 SSL 加密的安全连接。 与传统的到 DBMS 的明文连接不同,SSL 连接提供端点验证和数据加密,以确保客户端和 StarRocks 之间传输的数据不会被未经授权的用户读取。

启用 SSL 认证

配置 FE 节点

要在 StarRocks 中启用 SSL 认证,请在 FE 配置文件 fe.conf 中配置以下参数

  • ssl_keystore_location:指定存储 SSL 证书和密钥的密钥库文件的路径。
  • ssl_keystore_password:用于访问密钥库文件的密码。 StarRocks 需要此密码才能读取密钥库文件。
  • ssl_key_password:用于访问密钥的密码。 StarRocks 需要此密码才能从密钥库中检索密钥。

示例

ssl_keystore_location = // Path to the keystore file  
ssl_keystore_password = // Password for the keystore file
ssl_key_password = // Password for accessing the key

生成 SSL 证书

在生产环境中,建议使用证书颁发机构提供的证书。

在开发环境中,您可以生成自定义 SSL 证书。 使用以下命令生成 SSL 证书

keytool -genkeypair -alias starrocks \
-keypass <ssl_key_password> \
-keyalg RSA -keysize 1024 -validity 365 \
-keystore <ssl_keystore_location> \
-storepass <ssl_keystore_password>

参数

  • -keypass:密钥密码,对应于 fe.conf 中的 ssl_key_password
  • -storepass:密钥库文件密码,对应于 fe.conf 中的 ssl_keystore_password
  • -keystore:密钥库文件的存储路径,对应于 fe.conf 中的 ssl_keystore_location

在客户端启用 SSL

StarRocks 兼容 MySQL 协议。 对于 MySQL 客户端,默认启用 SSL 认证。

对于 JDBC 连接,添加以下选项

useSSL=true
verifyServerCertificate=false

禁用 SSL 认证

要禁用 SSL 认证,请按照以下步骤操作

  • MySQL 客户端:添加选项 --ssl-mode=DISABLED
  • JDBC:删除 useSSL=trueverifyServerCertificate=false

LDAP 认证

有关启用 LDAP 认证的详细说明,请参阅认证方法

对于 JDBC 连接,由于 StarRocks 支持 SSL 认证,因此您无需自定义 AuthPlugin。 您可以使用内置的 MysqlClearPasswordPlugin

  • 当使用 JDBC 5 和 LDAP 认证时,请配置以下设置

    authenticationPlugins: com.mysql.jdbc.authentication.MysqlClearPasswordPlugin
    defaultAuthenticationPlugin: com.mysql.jdbc.authentication.MysqlClearPasswordPlugin
    disabledAuthenticationPlugins: com.mysql.jdbc.authentication.MysqlNativePasswordPlugin
  • 当使用 JDBC 8 和 LDAP 认证时,请配置以下设置

    authenticationPlugins: com.mysql.cj.protocol.a.authentication.MysqlClearPasswordPlugin
    defaultAuthenticationPlugin: com.mysql.cj.protocol.a.authentication.MysqlClearPasswordPlugin
    disabledAuthenticationPlugins: com.mysql.cj.protocol.a.authentication.MysqlNativePasswordPlugin

常见问题

Q1: 当我使用 DBeaver 连接到 StarRocks 时,返回错误“Unable to load authentication plugin 'mysql_native_password'”。

A:您需要将 JDBC 5 升级到 5.1.46 或更高版本。