因此,我有一个名为“NodeChef”的云提供商托管的这个 mongoDB (3.0.x) replicaSet。
据我所知,并仔细查阅了文档,我发现我根本无法访问底层主机。
我想将一台完全由我自行管理的主机添加到上述副本集中。我已经联系了 NodeChef 支持人员并要求提供此操作所需的“全套凭据”。他们回答说我应该已经拥有所需的一切,并且他们知道有客户正在运行这样的配置。
现在,理想情况下,该解决方案适用于 X.509 身份验证,但如果更容易的话,我会选择storedKey(SCRAM-SHA1)。
X.509 案例中的问题:据我所知,我必须拥有一个与 O 和签名 CA 中现有主机上的证书相匹配的证书(私钥)。我可以下载 CA 的公钥文件,所以我知道这是 LetsEncrypt。使用 openssl s_client 而不是 mongo client 连接到集群会给我以下结果:
subject=/CN=*.nodechef.com issuer=/C=US/O=Let's Encrypt/CN=R3 --- 可接受的客户端证书 CA 名称 /O=Digital Signature Trust Co./CN=DST Root CA X3 /C=US/O=Internet Security Research Group/CN=ISRG Root X1 /C=US/O=Let's Encrypt/CN=R3
我想我可以为此起草一份签名请求,但我不知道如何让相关部门签署该请求。
密钥文件案例中的问题:尽管支持代理告诉我我可以访问所有需要的密钥,但我不知道从哪里获取需要放入密钥文件的共享密钥。
我根据以下文档将新主机添加到副本集:https://docs.mongodb.com/v3.0/reference/method/rs.add/
我在storedKey案例中收到的错误消息始终是:
我访问 [conn2119] 来自客户端 95.179.166.84 的本地 __system 的 SCRAM-SHA-1 身份验证失败;AuthenticationFailed SCRAM-SHA-1 身份验证失败,storedKey 不匹配
rs 正在运行 mongoDB 3.0.x。新主机在 aws ec2 实例上的 mongo:3.0.x docker 镜像中运行。如有任何指点,我将不胜感激。
答案1
回答我自己的问题:再次联系支持人员,得到了针对两者的可能解决方案:
你好,Torge,
在这种情况下,您将无法使用 NodeChef SSL 证书。您必须创建自己的自定义 SSL 证书,我们可以将其安装在 NodeChef 副本集上。另一种方法是禁用 SSL。
对于所需的密钥文件验证,我们可以轻松地为您提供密钥文件,因为它仅适用于您的实例。