Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Swarm:守护程序的错误响应:验证根CA证书时出错:x509:证书已过期或尚未有效_Docker_X509_Docker Swarm_Docker Engine - Fatal编程技术网

Docker Swarm:守护程序的错误响应:验证根CA证书时出错:x509:证书已过期或尚未有效

Docker Swarm:守护程序的错误响应:验证根CA证书时出错:x509:证书已过期或尚未有效,docker,x509,docker-swarm,docker-engine,Docker,X509,Docker Swarm,Docker Engine,OS:CentOS 7虚拟机 Docker最新版本 执行的命令: 1) docker swarm init 2) docker swarm join --token SWMTKN-1-3iqtmbz55yvhxkahe2ncs7d9ebxzlzmw1pwhqzvmcemiolef63-3muc4qjs3mbvh53t8ktzzmb22 192.168.10.108:2377 Error: Error response from daemon: error while val

OS:CentOS 7虚拟机

Docker最新版本

执行的命令:

   1) docker swarm init
   2) docker swarm join --token SWMTKN-1-3iqtmbz55yvhxkahe2ncs7d9ebxzlzmw1pwhqzvmcemiolef63-3muc4qjs3mbvh53t8ktzzmb22 192.168.10.108:2377 
    Error: Error response from daemon: error while validating Root CA Certificate: x509: certificate has expired or is not yet valid
正如你所看到的,swarm join给了我这个错误。这个错误的原因是什么?它来自哪里

问候
Aditya也有类似的问题,因为swarm init生成了ca证书,证书的起始日期是将来。可能是由于ntp滞后

可以使用以下命令获取CA证书信息:

docker swarm ca | openssl x509 -noout -text
输出将如下所示:

Certificate:
Data:
    Version: 3 (0x2)
    Serial Number:
        ...
Signature Algorithm: ecdsa-with-SHA256
    Issuer: CN=swarm-ca
    Validity
        Not Before: Oct 24 20:25:00 2018 GMT
        Not After : Oct 19 20:25:00 2038 GMT
    Subject: CN=swarm-ca
    Subject Public Key Info:
        Public Key Algorithm: id-ecPublicKey
            Public-Key: (256 bit)
            pub:
                ...
                ...
                ...
                ...
            ASN1 OID: prime256v1
            NIST CURVE: P-256
    X509v3 extensions:
        X509v3 Key Usage: critical
            Certificate Sign, CRL Sign
        X509v3 Basic Constraints: critical
            CA:TRUE
        X509v3 Subject Key Identifier:
            ...
Signature Algorithm: ecdsa-with-SHA256
     ...
     ...
     ...
     ...

您可以看到,有效期在2018年10月24日20:25:00 GMT和10月19日20:25:00 2038 GMT之间。如果尝试加入swarm的机器的时钟不在该时间间隔内,它将失败并出现该错误。

我通过在两台机器上设置相同的日期来解决此问题。

只需删除证书并重新启动服务即可

当节点中的时间不同步时,会生成此错误。 初始群后

docker swarm init
您可以使用下面的命令查看swarm证书的限制时间

docker swarm ca | openssl x509 -noout -text
您的节点时间必须介于

有效性
不在:2月20日10:21:00 2019 GMT之前
不在:2月15日10:21:00 2039 GMT之后

对于在linux中设置节点时间,可以使用'timedatectl'命令

对于自动同步时间,可以在每个节点中使用follow命令

timedatectl set-timezone asia/Tehran
timedatectl set-ntp on
而且你可以显示所有时区

timedatectl list-timezones

事实上,docker节点运行的虚拟机之间的日期和时间并不同步:

以下命令帮助我解决了这个问题:

systemctl stop ntpd ;  ntpdate *server* ; systemctl start ntpd
作为缔约国:

ntpdate通过轮询网络时间来设置本地日期和时间 协议(NTP)服务器作为要确定的服务器参数 正确的时间


您是在同一台机器上执行这两个命令,还是在不同的机器上执行?您是否使用任何代理?@Tarun Lalwani都在不同的机器上执行。您是否使用任何代理?尽管包含了“HTTP_代理”和“NO_代理”,但遇到了相同的问题。请修复两台机器上的时间,使它们处于同一时间。