我遇到了一个奇怪的证书问题,我不知道如何调试。当我在一台特定服务器上的 docker 容器内运行 wget 时,它无法验证证书。相同的 wget 在服务器机器本身(docker 外部)上运行良好,并且在不同服务器上的同一个 docker 容器内运行。
这是 docker 容器的设置:
docker run --rm -ti debian:jessie bash
apt-get update
apt-get install wget
wget https://google.com
回复是:
converted 'https://google.com' (ANSI_X3.4-1968) -> 'https://google.com' (UTF-8)
--2016-06-22 14:22:02-- https://google.com/
Resolving google.com (google.com)... 216.58.217.142, 2607:f8b0:4004:807::200e
Connecting to google.com (google.com)|216.58.217.142|:443... connected.
ERROR: The certificate of 'google.com' is not trusted.
ERROR: The certificate of 'google.com' hasn't got a known issuer.
The certificate's owner does not match hostname 'google.com'
由于相同的过程适用于其他服务器,因此问题似乎只是该服务器本身的一些证书问题。但我一定很困惑:为什么服务器本身的证书与 docker 容器内部发生的事情有任何关系?
我非常感谢对此的任何见解,特别是我可以采取的任何调试步骤以更好地理解问题。
最佳答案
jessie 图像中的证书似乎已过期。
在 wget 之前尝试 apt-get install ca-certificates
关于SSL 证书验证在特定服务器上的 docker 容器内失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37970990/