写点什么

等保三级测评:TiDB 客户端服务端间通信开启加密传输实践

  • 2024-01-12
    北京
  • 本文字数:1231 字

    阅读完需:约 4 分钟

作者: Fly-bird 原文来源:https://tidb.net/blog/3ea9d925

背景:

为应对等保三级测评,需要开启 tidb 客户端和服务端通信的加密传输,要求通过 SSL 并校验客户端证书

操作

方案一,此方案可以应付测评,无法保证客户端的身份校验

一、开启 SSL,自动生成服务端证书,不校验客户端证书

1、自动生成证书在 tidb.toml 文件中增加,启用证书自动生成功能(从 v5.2.0 开始)[security]<br>auto-tls = true



2、新建 ssl 用户


CREATE USER 'u1'@'%' IDENTIFIED BY 'my_random_password' REQUIRE SSL; --新增用户使用SSL连接


3、重启集群 tidb 节点


tiup cluster restart {tidb-cluster} -N 192.168.195.140:4000
复制代码


4、使用这个用户勾选 SSL 可以连接 tidb 服务端,不需要校验证书


方案二、开启 SSL,手动生成服务端证书,校验客户端证书

创建目录 mkdir /data/cert && cd /data/cert

一、生成 CA 证书

1、生成密钥openssl genrsa -out root.key 40962、生成证书openssl req -new -x509 -days 36500 -key root.key -out root.crt3、验证证书openssl x509 -text -in root.crt -noout

二、签发证书,这里因为是客户端服务端间通信,所以只给 tidb 签发证书

1、生成私钥openssl genrsa -out tidb.key 20482、拷贝 openssl 配置文件并修改 find / -name openssl.cnfcp /etc/pki/tls/openssl.cnf .vi openssl.cnf 编辑 openssl.cnf,在 [ req ] 字段下加入 req_extensions = v3_req,然后在 [ v3_req ] 字段下加入 subjectAltName = @alt_names。最后新建一个字段,并编辑 SAN 的信息:[ alt_names ]<br>IP.1 = 127.0.0.1<br>IP.2 = 192.168.195.140(这里写 tidb 的 ip 地址信息)3、生成证书请求文件openssl req -new -key tidb.key -out tidb.csr -config openssl.cnf4、签发生成证书openssl x509 -req -days 36500 -CA root.crt -CAkey root.key -CAcreateserial -in tidb.csr -out tidb.crt -extensions v3_req -extfile openssl.cnf5、验证证书携带 SAN 字段信息(可选)openssl x509 -text -in tidb.crt -noout

三、生成客户端证书

1、生成该证书对应的私钥openssl genrsa -out client.key 20482、生成证书请求文件openssl req -new -key client.key -out client.csr3、签发生成证书openssl x509 -req -days 365 -CA root.crt -CAkey root.key -CAcreateserial -in client.csr -out client.crt


综合以上,我们需要的证书是 CA 根证书 root.crt,服务器证书 tidb.csr,tidb.key,客户端证书 client.csr,client.key

四、配置 tidb

vi tidb.toml[security] #auto-tls = true #skip-grant-table = true<br>require-secure-transport = true<br>ssl-ca = "/data/cert/root.crt"<br>ssl-cert = "/data/cert/tidb.crt"<br>ssl-key = "/data/cert/tidb.key"


五、重启 tidb 节点

tiup cluster restart eu-test-tidb-cluster -N 192.168.195.140:4000

六、客户端连接需要开启 ssl,配置证书



#require-secure-transport = true 这个选项决定是否需要验证客户端证书,开启后所有用户都需要 ssl


发布于: 30 分钟前阅读数: 4
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
等保三级测评:TiDB 客户端服务端间通信开启加密传输实践_实践案例_TiDB 社区干货传送门_InfoQ写作社区