如何解决Cockroach DB 无法创建客户端证书
我已经使用教程 here 在我的 Linux (WSL2 Ubuntu 20.04) 上安装了 Cockroach DB。
但是,当我在步骤 1.4 中尝试为 root 用户创建客户端证书和密钥对时,出现以下错误:
W210412 14:47:47.996624 1 security/certificate_loader.go:356 error finding key for certs/node.crt: key file certs/node.key has permissions -rwxrwxrwx,exceeds -rwx------
错误:无法生成客户端证书和密钥:密钥文件 certs/node.key 具有权限 -rwxrwxrwx,超过 -rwx------ 运行“cert create-client”失败 因此,我无法在下一步中启动集群。
解决方法
CockroachDB 要求密钥文件具有健全的权限(仅限所有者)。 但是,用于 linux 的 windows 子系统对文件权限的处理很奇怪(有关详细信息,请参阅 this WSL doc)。
您有两个选择:
- 如果可能,找出如何更改 WSL2 上的文件权限
- 告诉 CockroachDB 跳过关键文件权限
后者在certificates documentation中描述:
密钥(以 .key 结尾的文件)不得具有组或世界权限 (最大权限为 0700,或 rwx------)。这个检查可以 通过设置环境变量禁用 COCKROACH_SKIP_KEY_PERMISSION_CHECK=真。
使用此信息,我们可以更改教程的第 1.4 步。
默认行为给出了您遇到的错误:
$ cockroach cert create-client root --certs-dir=certs --ca-key=my-safe-directory/ca.key
W210412 15:05:44.419689 1 security/certificate_loader.go:356 error finding key for certs/node.crt: key file certs/node.key has permissions -rwxrwxrwx,exceeds -rwx------
ERROR: failed to generate client certificate and key: key file certs/node.key has permissions -rwxrwxrwx,exceeds -rwx------
Failed running "cert create-client"
使用 COCKROACH_SKIP_KEY_PERMISSION_CHECK=true
环境变量,我们可以让它忽略文件权限并继续:
$ COCKROACH_SKIP_KEY_PERMISSION_CHECK=true cockroach cert create-client root --certs-dir=certs --ca-key=my-safe-directory/ca.key
如果您确实使用此变通方法,则还需要使用它来启动 cockroach
服务器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。