MySQL 安全传输
Doris 开启 SSL 功能需要配置 CA 密钥证书和 Server 端密钥证书,如需开启双向认证,还需生成 Client 端密钥证书:
默认的 CA 密钥证书文件位于
Doris/fe/mysql_ssl_default_certificate/ca_certificate.p12
,默认密码为doris
,您可以通过修改 FE 配置文件conf/fe.conf
,添加mysql_ssl_default_ca_certificate = /path/to/your/certificate
修改 CA 密钥证书文件,同时也可以通过mysql_ssl_default_ca_certificate_password = your_password
添加对应您自定义密钥证书文件的密码。默认的 Server 端密钥证书文件位于
Doris/fe/mysql_ssl_default_certificate/server_certificate.p12
,默认密码为doris
,您可以通过修改 FE 配置文件conf/fe.conf
,添加mysql_ssl_default_server_certificate = /path/to/your/certificate
修改 Server 端密钥证书文件,同时也可以通过mysql_ssl_default_server_certificate_password = your_password
添加对应您自定义密钥证书文件的密码。默认生成了一份 Client 端的密钥证书,分别存放在
Doris/fe/mysql_ssl_default_certificate/client-key.pem
和Doris/fe/mysql_ssl_default_certificate/client_certificate/
。
自定义密钥证书文件
除了 Doris 默认的证书文件,您也可以通过openssl
生成自定义的证书文件。步骤参考MySQL 生成 SSL 证书
具体如下:
- 生成 CA、Server 端和 Client 端的密钥和证书
# 生成CA certificate
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 3600 \
-key ca-key.pem -out ca.pem
# 生成server certificate, 并用上述CA签名
# server-cert.pem = public key, server-key.pem = private key
openssl req -newkey rsa:2048 -days 3600 \
-nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 3600 \
-CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
# 生成client certificate, 并用上述CA签名
# client-cert.pem = public key, client-key.pem = private key
openssl req -newkey rsa:2048 -days 3600 \
-nodes -keyout client-key.pem -out client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -req -in client-req.pem -days 3600 \
-CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
- 验证创建的证书。
openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
- 将您的 CA 密钥和证书和 Sever 端密钥和证书分别合并到 PKCS#12 (P12) 包中。您也可以指定某个证书格式,默认 PKCS12,可以通过修改 conf/fe.conf 配置文件,添加参数 ssl_trust_store_type 指定证书格式
# 打包CA密钥和证书
openssl pkcs12 -inkey ca-key.pem -in ca.pem -export -out ca_certificate.p12
# 打包Server端密钥和证书
openssl pkcs12 -inkey server-key.pem -in server-cert.pem -export -out server_certificate.p12