使用官方Helm部署的安全CockroachDB集群无法登录问题咨询
问题1:x509证书由未知机构签名报错诱因
- 证书目录路径不匹配:你执行命令时指定的
--certs-dir /cockroach-certs/和文档指引的/cockroach/cockroach-certs/路径不一致,无法读取到集群对应的根CA证书ca.crt - 证书内容不匹配:客户端挂载的证书Secret不是CockroachDB集群自动生成的客户端证书Secret,缺少对应根CA证书,或是根CA证书和集群服务端使用的CA不属于同一套
- 主机名校验失败:你指定的
--host参数值不在服务端证书的Subject Alternative Name(SAN)列表中,触发证书校验失败
问题2:集群正常访问方案
你在node0节点执行命令时弹出密码输入提示,是因为节点默认的cockroach-certs/目录下仅存放节点服务端证书,缺少root用户的客户端证书与密钥,CockroachDB检测不到有效客户端证书就会自动切换到密码认证流程。
正常访问可按以下步骤操作:
- 确认已将Helm部署时自动生成的
{你的部署释放名}-cockroachdb-rootSecret挂载到执行命令的环境中,该Secret包含root用户的客户端证书、密钥以及集群根CA证书,挂载目录建议和文档保持一致为/cockroach/cockroach-certs - 执行登录命令时指定正确的证书目录和用户名:
cockroach sql --certs-dir /cockroach/cockroach-certs --user root --host {你的部署释放名}-cockroachdb-public
- 如果需要直接在节点本地登录,可先将root证书Secret的内容导出到节点本地目录,再指定该目录为
--certs-dir参数值执行命令即可,无需额外设置root密码,证书校验通过后会直接进入SQL shell。
内容的提问来源于stack exchange,提问作者omikron
相关产品推荐
相关产品推荐

