Comment puis-je corriger les erreurs de certificat lorsque j'exécute wget sur une URL HTTPS dans Cygwin?
par exemple, l'exécution de wget https://www.dropbox.com
produit 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.
8 réponses
en regardant les solutions actuelles de hacky ici, je sens que je dois décrire une solution appropriée après tout.
Première", 151990920", vous devez installer l'environnement cygwin ca-certificates
via Cygwin du programme d'installation.exe pour obtenir les certificats.
N'utilisez pas curl ou des hacks similaires pour télécharger des certificats (comme des conseils de réponse voisins) parce que qui est fondamentalement peu sûr et peut compromettre le système.
Second, vous devez dire à wget où sont vos certificats, car il ne les récupère pas par défaut dans L'environnement Cygwin. Si vous pouvez faire cela soit avec le paramètre de ligne de commande --ca-directory=/usr/ssl/certs
(meilleur pour les scripts shell) ou en ajoutant ca_directory = /usr/ssl/certs
au fichier ~/.wgetrc
.
vous pouvez également corriger cela en lançant ln -sT /usr/ssl /etc/ssl
comme indiqué dans une autre réponse, mais cela ne fonctionnera que si vous avez administratif l'accès au système. les autres solutions que j'ai décrites n'exigent pas cela.
si vous ne vous souciez pas de vérifier la validité du certificat il suffit d'ajouter l'option --no-check-certificate
sur la ligne de commande wget. Cela a bien fonctionné pour moi.
NOTE: Ceci vous ouvre à des attaques d'homme-dans-le-milieu (MitM), et n'est pas recommandé pour quoi que ce soit où vous vous souciez de la sécurité.
si le problème est qu'un CA racine connu est manquant et que vous utilisez ubuntu ou debian, alors vous pouvez résoudre le problème avec cette seule 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 fixer curl
, mais wget
nécessite un lien symbolique supplémentaire:
ln -sT /usr/ssl /etc/ssl
peut être cela aidera:
wget --no-check-certificate https://blah-blah.tld/path/filename
si vous utilisez windows, allez dans Panneau de configuration, cliquez sur Mises à jour automatiques, puis sur le lien Windows Update Web Site. Il suffit de suivre l'étape. Au moins ça marche pour moi, plus de certificats émis I. e chaque fois que je vais à https://www.dropbox.com comme avant.