例如,运行wget https://www.dropbox.com会出现以下错误:

ERROR: The certificate of `www.dropbox.com' is not trusted.
ERROR: The certificate of `www.dropbox.com' hasn't got a known issuer.

当前回答

不是完全一样的问题。在docker上,我正在将我的主机文件系统挂载到/etc,其中已经安装了OpenSSL certs,这将被覆盖。

改变安装到不同的文件系统可以解决这个问题。

其他回答

如果问题是一个已知的根CA缺失,并且当你使用ubuntu或debian时,那么你可以用这一行来解决问题:

sudo apt-get install ca-certificates

看看目前的解决方案在这里,我觉得我必须描述一个合适的解决方案。

首先,您需要通过cygwin的setup.exe安装cygwin包ca-certificates以获得证书。

不要使用curl或类似的黑客来下载证书(作为相邻的回答建议),因为这从根本上是不安全的,可能会危及系统。

其次,您需要告诉wget证书的位置,因为在Cygwin环境中,默认情况下wget不会获取证书。如果您可以使用命令行参数——ca-directory=/usr/ssl/certs(最适合shell脚本)或将ca_directory =/usr/ssl/certs添加到~/,则可以这样做。wgetrc文件。

您也可以通过运行ln -sT /usr/ssl /etc/ssl来解决这个问题,这在另一个答案中指出,但只有当您对系统有管理访问权限时才会起作用。我描述的其他解决方案不需要这样做。

在我的例子中,在树莓派3B上,时间是在未来(2025年),我需要使用ntpdate通过将时间传递到过去来更新到当前的本地时间,它解决了这个问题。

 $ sudo date +%Y%m%d -s "20210101"
 $ sudo ntpdate times1.mike.fi

We just had this same issue come up when we installed a newly minted certificate just this last week. I've also seen it two other times...yet I'm slow to learn. In all 3 cases I had to get the "intermediate certificates" and install them. In other words My cert was good but it's signer or it's signer's signer wasn't correctly installed. Make sure you go to your certificate provider's site and get the correct intermediate certificates and install them as well on your server and then this warning will go away.

可能不仅仅是上面的原因,也可能是客户没有更新列表……但我会确保这不仅仅是你没有完全安装正确的证书,然后再到客户端,并确保他们的列表更新。

只做

apt-get install ca-certificate