微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cockroach DB 无法创建客户端证书

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?