等保三级测评:实践TiDB客户端与服务端间的加密通信

Tiit 796 2024-01-17

背景:

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

操作

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

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

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

image.png

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服务端,不需要校验证书

image.png

方案二、开启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.cnf cp /etc/pki/tls/openssl.cnf . vi openssl.cnf 编辑 openssl.cnf,在 [ req ] 字段下加入 req_extensions = v3_req,然后在 [ v3_req ] 字段下加入 subjectAltName = @alt_names。最后新建一个字段,并编辑 SAN 的信息:[ alt_names ] IP.1 = 127.0.0.1 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 require-secure-transport = true ssl-ca = "/data/cert/root.crt" ssl-cert = "/data/cert/tidb.crt" ssl-key = "/data/cert/tidb.key"

image.png

五、重启tidb节点

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

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

image.png

image.png

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:云上rds的成本分析:TiDB作为替代方案的优势
下一篇:DynamoDB2022论文深度解读
相关文章