【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】v7.1.0
【复现路径】使用Backup&Restore工具对tidb数据库进行备份,用https协议备份到s3存储失败。
【遇到的问题:问题现象及影响】证书校验失败。 请问是否可以关闭证书校验?
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
[2024/09/19 09:40:28.674 +00:00] [INFO] [collector.go:77] [“Table Backup failed summary”] [total-ranges=0] [ranges-succeed=0] [ranges-failed=0]
Error: failed to get region of bucket es-test03: RequestError: send request failed
caused by: tls: failed to verify certificate: x509: cannot validate certificate for 192.168.18.120 because it doesn’t contain any IP SANs
[root@centos7 ~]# vi /tmp/br.log.2024-09-19T09.37.31Z
测试环境吗?别用 https 了呗
我是在备份服务器上安装s3 cli 配置好证书秘钥,备份到s3的时候直接写s3路径就行,没有遇到你说的ssl证书验证问题,你可以参考下
安装aws cli
curl “https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip” -o “awscliv2.zip”
unzip awscliv2.zip
sudo ./aws/install
配置s3密钥
aws configure --profile produser
access-key-id: xxxxxxxx
access-key-secret: xxxxxxx
region: eu-central-1
测试
aws s3 ls --profile produser
复制文件到s3桶
aws s3 cp /data/tidbback/tidb_240619.tar.gz s3://tidb-backup-eu/tidb-backup/ --profile produser
我测试过了使用http是OK的,但是现在问题是我必须要支持https。
请使用域名访问你的 s3 ,证书里没有包含 IP 地址信息
这位朋友,你这里是直接将制定的文件拷贝到存储桶,并未使用到https协议,所以不会存在证书校验问题的。
我这里遇到主要的问题还是关于Backup&Restore工具本身,查阅了BR手册之后,尚未发现可以关闭证书校验的option参数
谢谢你这位朋友,由于一些原因我现在必须要支持使用ip,并且是没有购买证书的。
生成证书的时候也要加 IP ,否则证书验证不会成功
不考虑使用证书验证的方式,现在是希望可以关闭证书校验。
那就用 http 访问啊 没看到有参数控制不验证证书的
1.如果可能,使用域名而不是 IP 地址来访问 S3 存储。确保证书中包含了正确的域名
2.如果必须使用 IP 地址,确保 S3 存储服务器的证书包含了正确的 IP SAN
3.无法修改 S3 存储服务器的证书,BR 工具提供了一个参数来控制是否向 TiKV 发送凭证,例如:
./br backup full -c=0 -u pd-service:2379 --storage ‘s3://bucket-name/prefix’ --send-credentials-to-tikv=false
确实是这样的,无奈。。。
你需要生成一个自签名证书,让后把这个证书加到信任证书里面去。
确实没有什么更好的办法,自己生成自签名证书吧。
如果你的目标的关闭这个校验,那是要改代码的。所以综合看,还是自签名证书比较容易做到。
在使用 TiDB 的 BR 工具进行备份时,如果需要关闭证书校验,可以通过设置 --ca
、--cert
和 --key
参数为空字符串来实现。这些参数通常用于指定证书文件的路径,当它们被设置为空白时,BR 工具将不会进行证书校验。
试下这个呢:
br backup full --pd “your_pd_address” --storage “s3://your_bucket/your_backup_location” --ca “” --cert “” --key “”