在Cygwin中的HTTPS URL上运行wget时,如何修复证书错误?

在Cygwin中的HTTPS URL上运行wget时,如何修复证书错误?,https,cygwin,certificate,wget,Https,Cygwin,Certificate,Wget,例如,运行wgethttps://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. 首先,需要安装SSL证书。说明(基于): 以上内容足以修复curl,但wget需要额外的符号链接: ln -sT /usr/ssl /etc/ssl 如

例如,运行
wgethttps://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.

首先,需要安装SSL证书。说明(基于):

以上内容足以修复
curl
,但
wget
需要额外的符号链接:

ln -sT /usr/ssl /etc/ssl

如果问题是缺少一个已知的根CA,并且当您使用ubuntu或debian时,那么您可以通过以下一行解决问题:

sudo apt-get install ca-certificates

如果您不关心检查证书的有效性,只需在wget命令行上添加
--no check certificate
选项。这对我很有效


注意:这会使您面临中间人(MitM)攻击,并且不建议您在关注安全性的任何情况下使用。

在这里查看当前的黑客解决方案,我觉得我必须描述一个合适的解决方案

首先,您需要通过cygwin的setup.exe安装cygwin软件包
ca证书
,以获取证书

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

其次,您需要告诉wget您的证书在哪里,因为在Cygwin环境中,默认情况下它不会提取它们。如果您可以使用命令行参数
--ca directory=/usr/ssl/certs
(最适合shell脚本),或者将
ca\u directory=/usr/ssl/certs
添加到
~/.wgetrc
文件中


您还可以通过运行另一个答案中指出的
ln-sT/usr/ssl/etc/ssl来修复此问题,但只有在您具有系统管理权限的情况下才能我介绍的其他解决方案不需要此功能。

如果您使用的是windows,请转到控制面板,单击自动更新,然后单击Windows Update网站链接。只需按照步骤进行。至少这对我来说是可行的,不再颁发证书,也就是说,每次我像以前一样去那里。

就这样做吧

apt-get install ca-certificate

s
起作用;)

这可能有助于:

wget --no-check-certificate https://blah-blah.tld/path/filename

我有类似的问题,并通过暂时禁用我的防病毒软件(卡巴斯基免费18.0.0.405)修复了它。此AV具有HTTPS拦截模块,可自动对在HTTPS响应中找到的所有证书进行自签名

Cygwin的Wget对AV根证书一无所知,所以当它发现该网站的证书是用非信任证书签署的时,它会打印该错误


要永久修复此问题而不禁用AV,您应该将AV根证书从Windows证书存储复制到
/etc/pki/ca trust/source/archors
as.pem文件(base64编码)然后运行
updateca-trust

在安装新的SSL证书后,wget-to-my-live网站返回错误时,我遇到了类似的问题。我已经检查了几个浏览器,它们没有报告任何错误:

wget--无缓存-O--https://example.com/...错误:“example.com”的证书不受信任。错误:“example.com”的证书没有已知的颁发者。

问题是我从颁发者安装了错误的证书颁发机构.pem/.crt文件。通常,他们将SSL证书和CA文件捆绑为zip文件,但DigiCert会通过电子邮件向您发送证书,您必须自己找出匹配的CA。有一个SSL证书检查器,其中列出SSL授权和希望匹配的CA,如果他们同意,则显示一个漂亮的蓝色链接图形:

`SSL证书:颁发者GeoTrust TLS DV RSA混合SHA256 2020 CA-1

CA:主体GeoTrust TLS DV RSA混合SHA256 2020 CA-1 有效期为2020年7月16日至2023年5月31日
Issuer DigiCert Global Root CA`

上周,我们刚刚安装了一个新的证书,出现了同样的问题。我还看过另外两次……但我学起来很慢。在所有3种情况下,我都必须获得“中间证书”并安装它们。换句话说,我的证书是好的,但它的签名者或签名者的签名者没有正确安装。请确保转到证书提供商的站点,获取正确的中间证书并将其安装到服务器上,然后此警告将消失


可能不仅仅是上述情况,也可能是客户端没有更新的列表…但我会确保不仅仅是您没有首先完全安装证书,然后再转到客户端,确保更新他们的列表。

从随机网站安装根证书颁发机构不是不安全的,尤其是在名称为haxx的情况下?@Chloe curl.haxx.se是curl的开发站点。非常值得信赖的人。你如何在没有卷曲的情况下修复它?天哪,符号链接是我错过的。。。在30分钟内搜索1行修复>这在多个级别上都有问题。首先,您不需要手动下载证书,因为有一个名为“ca证书”的Cygwin包。第二,只有当您具有系统的管理访问权限或仅为您的用户帐户安装了cygwin时,符号链接才会起作用,但情况并非总是如此,因此代码不可靠。apt-get是否在cygwin上?apt get在redgat上?;)ca证书已安装在我的计算机中。运行
update ca certificates
解决了这个问题。这在我的Synology DS215j和Debian chroot上也起到了作用。@fox
update ca certicates
是一个ubuntu命令,在Debian中不可用。@Devy它实际上在我运行Debian wheezyThanks的raspberry pi上起到了作用,特别是关于~/.wgetrc文件的提醒。作为MacPorts用户,我的证书位于/opt/local/etc/openssl,我希望有人能发现这一点。对于fink来说,它们位于/sw/etc/ssl/certs/ca-bundle.crt中,作为
ca bundle
包的一部分,如前所述。否
apt-get install ca-certificates 
wget --no-check-certificate https://blah-blah.tld/path/filename