李承武

docker TLS证书过期解决办法

今天在很久以前安装过docker的win7机器上调试项目,执行docker-compose up -d报错

ERROR: SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)

google了一轮,花了点时间尝试了各种提及到的方法无果。

几经展转发现Docker Machine证书目录

C:\Users\{yourUserName}\.docker\machine\certs

查看其证书发现已过期一年多。。。

重新生成TLS证书并使用新的证书更新计算机:

$ docker-machine regenerate-certs default
Regenerate TLS machine certs?  Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Waiting for SSH to be available...
Detecting the provisioner...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...

重新生成客户端证书:

$ docker-machine regenerate-certs --client-certs default
Regenerate TLS machine certs?  Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Regenerating local certificates
CA certificate is outdated and needs to be regenerated
Creating CA: C:\Users\{yourUserName}\.docker\machine\certs\ca.pem
Client certificate is outdated and needs to be regenerated
Creating client certificate: C:\Users\{yourUserName}\.docker\machine\certs\cert.pem
Waiting for SSH to be available...
Detecting the provisioner...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...

Done

估计重新生成一下客户端证书就over了。。。

参考:docker-machine regenerate-certs

评论