Por exemplo, a execução wget https://www.dropbox.com
resulta nos seguintes erros:
ERROR: The certificate of `www.dropbox.com' is not trusted.
ERROR: The certificate of `www.dropbox.com' hasn't got a known issuer.
Por exemplo, a execução wget https://www.dropbox.com
resulta nos seguintes erros:
ERROR: The certificate of `www.dropbox.com' is not trusted.
ERROR: The certificate of `www.dropbox.com' hasn't got a known issuer.
Respostas:
Olhando para as soluções hacky atuais aqui, sinto que tenho que descrever uma solução adequada, afinal.
Primeiro, você precisa instalar o pacote cygwin ca-certificates
através do setup.exe do Cygwin para obter os certificados.
NÃO use hacks curl ou similares para baixar certificados (como conselhos de resposta vizinhos), pois isso é fundamentalmente inseguro e pode comprometer o sistema.
Segundo, você precisa dizer ao wget onde estão seus certificados, pois eles não os capturam por padrão no ambiente Cygwin. Se você puder fazer isso com o parâmetro de linha de comando --ca-directory=/usr/ssl/certs
(melhor para scripts de shell) ou adicionando ca_directory = /usr/ssl/certs
ao ~/.wgetrc
arquivo.
Você também pode corrigir isso executando ln -sT /usr/ssl /etc/ssl
conforme indicado em outra resposta, mas isso funcionará apenas se você tiver acesso administrativo ao sistema. Outras soluções que descrevi não exigem isso.
ca-bundle
pacote - como descrito aqui .
ln -s /etc/ssl /usr/ssl
funcionou para mim.
Se você não se importa em verificar a validade do certificado, adicione a --no-check-certificate
opção na linha de comando do wget. Isto funcionou bem para mim.
NOTA: Isso abre você para ataques do tipo man-in-the-middle (MitM) e não é recomendado para qualquer coisa em que você se preocupe com a segurança.
Se o problema é que uma CA raiz conhecida está ausente e quando você estiver usando o ubuntu ou debian, poderá resolver o problema com esta linha:
sudo apt-get install ca-certificates
update-ca-certificates
resolveu o problema.
update-ca-certificates
é um comando ubuntu, não disponível no debian.
Primeiro, os certificados SSL precisam ser instalados. Instruções (com base em https://stackoverflow.com/a/4454754/278488 ):
pushd /usr/ssl/certs
curl http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
c_rehash
O acima é suficiente para corrigir curl
, mas wget
requer um link simbólico extra:
ln -sT /usr/ssl /etc/ssl
Pode ser que isso ajude:
wget --no-check-certificate https://blah-blah.tld/path/filename
Eu tenho o problema semelhante e o corrigi desativando temporariamente meu antivírus (Kaspersky Free 18.0.0.405). Esse AV possui um módulo de interceptação HTTPS que assina automaticamente todos os certificados encontrados nas respostas HTTPS.
O Wget da Cygwin não sabe nada sobre o certificado raiz AV, portanto, quando descobre que o certificado do site foi assinado com certificado não confiável, imprime esse erro.
Para corrigir isso permanentemente sem desativar o AV, você deve copiar o certificado raiz do AV do armazenamento de certificados do Windows para /etc/pki/ca-trust/source/anchors
como arquivo .pem (codificação base64) e executarupdate-ca-trust
Se você estiver usando o Windows, basta ir ao painel de controle, clique em atualizações automáticas e no link Site do Windows Update. Basta seguir o passo. Pelo menos isso funciona para mim, não há mais emissão de certificados, ou seja, sempre que vou a https://www.dropbox.com como antes.