尝试通过HTTPs:x509连接docker时出错:证书对0.0.0.0有效,而不是<;我的集装箱IP>;

尝试通过HTTPs:x509连接docker时出错:证书对0.0.0.0有效,而不是<;我的集装箱IP>;,docker,ssl,https,openssl,tls1.2,Docker,Ssl,Https,Openssl,Tls1.2,我的docker(docker守护进程)在我的远程计算机实例上运行 我需要将我的dockerd连接到本地计算机,然后我尝试 当我完成时,我犯了一个错误 docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=$HOST:2376 ps error during connect: Get https://$HOST:2376/v1.24/containers/json: x509: certifica

我的docker(docker守护进程)在我的远程计算机实例上运行

我需要将我的dockerd连接到本地计算机,然后我尝试

当我完成时,我犯了一个错误

docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=$HOST:2376 ps
error during connect: Get https://$HOST:2376/v1.24/containers/json: x509: certificate is valid for 0.0.0.0, not $HOST
我该怎么办


更新:
$HOST
是我的远程服务器IP地址。

您是否从您提到的链接中遵循了这一点

由于TLS连接可以通过IP地址和DNS名称进行,因此在创建证书时需要指定IP地址。例如,要允许使用10.10.10.20和127.0.0.1进行连接,请执行以下操作:


是否在上述步骤中没有使用您的实际值(而不是代码段中的
$HOST
)?

如果需要在代码段中覆盖某些敏感数据,请不要将其参数化(就像这里的
$HOST
一样,只需将其替换为一些有效的虚拟数据,例如您的示例中的
foobar.local
。否则推理中可能会有选项:提供的命令是否按原样调用(使用单引号)因此,
$HOST
按原样进入了错误消息?我强烈建议完全关闭远程Docker API。这很危险(如果您可以成功访问套接字,您可以根目录访问主机),实际上您可能无论如何都需要正常的登录访问(
-v
绑定装载选项始终使用守护进程运行的系统,因此在大多数实际情况下,您需要将
scp
文件发送到目标系统)。@AleksandrVinokurov抱歉,我是新来的。正如您所说,我这样做是为了保护敏感数据。
$HOST
是我的远程服务器IP地址(如22.22.22.22)。我检查了我的cmd历史记录,我使用了
echo subjectAltName=IP:0.0.0>>extfile.conf
那么,我应该完全重新生成证书吗?:(我重新生成了一个
server-cert.pem
。问题已经解决。谢谢:)
$ echo subjectAltName = DNS:$HOST,IP:10.10.10.20,IP:127.0.0.1 >> extfile.cnf