我已经使用这里的教程在我的Linux(WSL2 Ubuntu 20.04(上安装了蟑螂数据库。
然而,当我在步骤1.4中尝试为根用户创建客户端证书和密钥对时,我得到了以下错误:
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客户端";因此,我无法在下一步启动集群。
蟑螂数据库要求密钥文件具有正常权限(仅限所有者(。然而,linux的windows子系统对文件权限有一个奇怪的处理(有关更多详细信息,请参阅本WSL文档(。
你有两个选择:
- 如果可能的话,找出如何更改WSL2上的文件权限
- 告诉蟑螂数据库跳过密钥文件权限
证书文档中描述了后者:
密钥(以.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
服务器。