Docker Swarm manager证书,未来开始日期:验证根CA证书时出错:x509:证书已过期或无效

Docker Swarm manager证书,未来开始日期:验证根CA证书时出错:x509:证书已过期或无效,docker,certificate,x509certificate,docker-swarm,Docker,Certificate,X509certificate,Docker Swarm,我有3个节点,我想与经理和员工一起玩。我的第一个(Debian)我成为了swarm manager: root@debiancli:~# docker swarm init --advertise-addr 192.168.182.129 Swarm initialized: current node (mkg6ecl3x28uyyqx7gvzz0ja3) is now a manager. To add a worker to this swarm, run the following co

我有3个节点,我想与经理和员工一起玩。我的第一个(Debian)我成为了swarm manager:

root@debiancli:~# docker swarm init --advertise-addr 192.168.182.129
Swarm initialized: current node (mkg6ecl3x28uyyqx7gvzz0ja3) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-47h52q7mpdkhbi4dsqyjt7pnjqgvm4oxxfh87k6e2hoj8f4op0-2p1zkg309owyophvk95bw7rj0 192.168.182.129:2377
要将管理器添加到此swarm,请运行“docker swarm加入令牌管理器”并按照说明操作

在我的第二个即将成为节点(CentOS)上,我尝试将其加入集群:

[root@centostraining ~]# docker swarm join --token SWMTKN-1-47h52q7mpdkhbi4dsqyjt7pnjqgvm4oxxfh87k6e2hoj8f4op0-2p1zkg309owyophvk95bw7rj0 192.168.182.129:2377
Error response from daemon: error while validating Root CA Certificate: x509: certificate has expired or is not yet valid
但它说,如上所示,证书无效(签发日期)。我在我的Debian上检查了日期,一切正常

root@debiancli:~# date
Tue Aug 14 22:02:29 EDT 2018
我还检查了CentOS中的日期:

[root@centostraining ~]# date
Ter Ago 14 22:05:05 -03 2018
现在,我检查了swarm manager CA证书日期:

root@debiancli:~# docker swarm ca | openssl x509 -noout -text | grep -E "Before|After" 
            Not Before: Aug 15 01:58:00 2018 GMT
            Not After : Aug 10 01:58:00 2038 GMT
那么,奇怪的是,我的证书是在生成后的第二天生成的? 然后在我的未来节点(CentOS)上,如果我更改日期:

[root@centostraining ~]# date +%Y%m%d -s "20180816"
20180816
[root@centostraining ~]# date
Qui Ago 16 00:00:01 -03 2018
[root@centostraining ~]# docker swarm join --token SWMTKN-1-47h52q7mpdkhbi4dsqyjt7pnjqgvm4oxxfh87k6e2hoj8f4op0-2p1zkg309owyophvk95bw7rj0 192.168.182.129:2377
This node joined a swarm as a worker. 

瞧,它现在像预期的那样工作了。有人能解释为什么我的swarm ca证书“在未来”吗?

Docker的证书不在未来。相反,您的时区设置不正确。一个是显示EDT,或者-4。在另一个节点上,由于显示的是相同的本地时间,但在-3时区,所以它的运行时间落后了一个小时。证书的输出为GMT或+0

你应该使用一个像NTP这样的工具来保持你的时钟同步,这样就可以在本地时间显示-3机器比另一台机器提前一个小时运行,但是如果你比较同一时区的话,时间是相同的