Par exemple, l'exécution de wget https://www.dropbox.com
entraîne les erreurs suivantes:
ERROR: The certificate of `www.dropbox.com' is not trusted.
ERROR: The certificate of `www.dropbox.com' hasn't got a known issuer.
En regardant les solutions actuelles de hacky ici, je sens que je dois décrire une solution appropriée après tout.
Tout d’abord, vous devez installer le package cygwin ca-certificates
via le fichier setup.exe de Cygwin pour obtenir les certificats.
N'utilisez PAS curl ou des méthodes similaires pour télécharger des certificats (comme conseils de réponse voisins) car c'est fondamentalement peu sûr et peut compromettre le système.
Deuxièmement, vous devez indiquer à wget où sont vos certificats, car il ne les récupère pas par défaut dans l'environnement Cygwin. Si vous pouvez le faire, utilisez le paramètre de ligne de commande --ca-directory=/usr/ssl/certs
(idéal pour les scripts Shell) ou ajoutez ca_directory = /usr/ssl/certs
au fichier ~/.wgetrc
.
Vous pouvez également résoudre ce problème en exécutant ln -sT /usr/ssl /etc/ssl
comme indiqué dans une autre réponse, mais cela fonctionnera uniquement si vous disposez d'un accès administrateur au système. Les autres solutions que j'ai décrites ne nécessitent pas cela.
Si vous ne vous souciez pas de vérifier la validité du certificat, ajoutez simplement l'option --no-check-certificate
sur la ligne de commande wget. Cela a bien fonctionné pour moi.
REMARQUE: Ceci vous ouvre le champ des attaques de type "homme au milieu" (MitM) et n'est pas recommandé pour tout ce qui concerne la sécurité.
Si le problème est qu’une autorité de certification racine connue est manquante et que vous utilisez Ubuntu ou Debian, vous pouvez résoudre le problème avec cette ligne:
Sudo apt-get install ca-certificates
Tout d'abord, les certificats SSL doivent être installés. Instructions (basées sur 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
Ce qui précède est suffisant pour corriger curl
, mais wget
nécessite un lien symbolique supplémentaire:
ln -sT /usr/ssl /etc/ssl
Peut-être que cela aidera:
wget --no-check-certificate https://blah-blah.tld/path/filename
apt-get install ca-certificates
La s
fait la différence;)
J'ai le même problème et je l'ai corrigé en désactivant temporairement mon antivirus (Kaspersky Free 18.0.0.405). Ce module audiovisuel possède un module d'interception HTTPS qui signe automatiquement tous les certificats trouvés dans les réponses HTTPS.
Wget de Cygwin ne connaît rien du certificat racine AV. Ainsi, lorsqu'il découvre que le certificat de site Web a été signé avec un certificat non sécurisé, il affiche cette erreur.
Pour résoudre ce problème de façon permanente sans désactiver AV, vous devez copier le certificat racine AV du magasin de certificats Windows dans /etc/pki/ca-trust/source/anchors
en tant que fichier .pem (codage en base64) et exécuter update-ca-trust
.