61 votes

apt-get update a échoué car la vérification du certificat a échoué car le handshake a échoué sur nodesource

Running sudo apt-get update sur mon instance AWS EC2 Ubuntu 18.04.01 LTS échoue :

Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown

lorsqu'on essaie d'accéder au deb.nodesource.com/node_10.x bionic Release

Voici le résultat après avoir exécuté sudo apt-get update :

Hit:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Ign:3 https://deb.nodesource.com/node_10.x bionic InRelease
Get:4 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Err:5 https://deb.nodesource.com/node_10.x bionic Release
  Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown.  Could not handshake: Error in the certificate verification. [IP: XX.XXX.XX.XX 443]
Get:6 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Reading package lists... Done
W: https://deb.nodesource.com/node_10.x/dists/bionic/InRelease: No system certificates available. Try installing ca-certificates.
W: https://deb.nodesource.com/node_10.x/dists/bionic/Release: No system certificates available. Try installing ca-certificates.
E: The repository 'https://deb.nodesource.com/node_10.x bionic Release' no longer has a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Il semble que mon installation actuelle de Node.js soit à l'origine du problème.

J'ai essayé d'installer et de mettre à jour ca-certificates en etc/ssl/certs Cependant, cela n'a pas aidé. Je ne sais pas exactement comment procéder pour résoudre ce problème.

Je ne cherche pas une solution de contournement rapide qui compromettrait la sécurité du serveur.

0voto

Keith Points 421

Cette erreur peut être causée par le fait que les certificats ne sont pas dans le dossier de l'utilisateur. /etc/ssl/certs lisible dans le monde entier. J'ai rencontré ce problème après avoir restauré mes certificats à partir d'une sauvegarde : pour moi, l'icône /etc/ssl lui-même a été défini comme 750 代わりに 755 rendant son contenu illisible, sauf pour l'administrateur.

Essayez ces commandes si vous avez des problèmes et que vous réinstallez ca-certificates n'aide pas :

sudo chmod 755 /etc /etc/ssl /etc/ssl/certs
sudo chmod 644 /etc/ssl/certs/ca-certificates.crt

0voto

Touch /etc/apt/apt.conf.d/99verify-peer.conf
&& echo >>/etc/apt/apt.conf.d/99verify-peer.conf "Acquire { https::Verify-Peer false }"

Désactive la vérification du certificat, et aucune erreur ne sera générée.

0voto

PJ_Finnegan Points 151

Essayez de mettre à jour les paquets relatifs à GNU TLS.
J'ai eu le même problème avec Ubuntu 16.04 LTS et le dépôt APT sublimetext, entre autres :

server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

J'avais essayé toutes les solutions proposées, sans succès.
Le truc marrant, c'est que si je courrais echo "" | gnutls-cli download.sublimetext.com -p 443 à partir d'un autre ordinateur, le certificat a été accepté, donc je sais que ce devait être un problème de client.
Puis, presque par hasard, j'ai vérifié les mises à jour en attente dans Software Updater et il y avait deux paquets GNU TLS.
Je les ai mis à jour et, comme par magie, toutes les erreurs ont disparu. Je ne me souviens pas exactement du nom des paquets, mais voici toutes les librairies TLS installées sur ma machine :

ii  gnutls-bin                        3.4.10-4ubuntu1.9     amd64                 GNU TLS library - commandline utilities
ii  libcurl3-gnutls:amd64             7.47.0-1ubuntu2.19    amd64                 easy-to-use client-side URL transfer library (GnuTLS flavour)
ii  libgnutls-dev:amd64               3.4.10-4ubuntu1.9     amd64                 GNU TLS library - development files
ii  libgnutls-openssl27:amd64         3.4.10-4ubuntu1.9     amd64                 GNU TLS library - OpenSSL wrapper
ii  libgnutls28-dev:amd64             3.4.10-4ubuntu1.9     amd64                 dummy transitional package for GNU TLS library - development files
ii  libgnutls30:amd64                 3.4.10-4ubuntu1.9     amd64                 GNU TLS library - main runtime library
ii  libgnutlsxx28:amd64               3.4.10-4ubuntu1.9     amd64                 GNU TLS library - C++ runtime library
ii  libneon27-gnutls:amd64            0.30.1-3build1        amd64                 HTTP and WebDAV client library (GnuTLS enabled)

0voto

r590 Points 101

Cette réponse dirige apt-get vers un magasin de certificats personnalisé en utilisant un fichier de configuration et en définissant la variable d'environnement APT_CONFIG pour qu'elle pointe vers ce nouveau fichier.

echo 'Acquire::https {\
        CaInfo "/cacert.pem";\
}' > /apt.conf
APT_CONFIG=/apt.conf

0voto

Jamie Clayton Points 31

Cela m'est arrivé aujourd'hui sur une ancienne version d'Ubuntu 16, mal entretenue.

Le premier problème était que les sources dans /etc/apt étaient HTTP et non HTTPS, et qu'elles avaient été bloquées. Les liens HTTPS ont échoué à la vérification, ce qui était attendu puisque je crois qu'ils utilisent LetsEncrypt et qu'ils ont changé leur chemin de certification en octobre dernier.

Mais je n'ai pas pu mettre à jour ca-certificates parce qu'on les croyait à jour et je n'ai pas pu faire comprendre à Apt qu'ils étaient n'étaient pas actuel parce que, tu sais, la mise à jour ne fonctionnait pas.

Donc :

  1. Désactiver temporairement la vérification des certificats en ajoutant

    Acquire { https::Verify-Peer false }

    sur /etc/apt/apt.conf.d/99verify-peer.conf .

  2. Exécuter apt update pour obtenir les nouvelles informations sur les certificats d'assurance-crédit

  3. Exécuter apt install ca-certificates

  4. Réactiver la vérification des certificats

    Modifiez le fichier ci-dessus et supprimez le contournement de la vérification par les pairs. Si le fichier est maintenant vide, vous pouvez le supprimer.

Maintenant, tout devrait principalement travail.

J'ai ensuite procédé au nettoyage du cache d'apt, et à une mise à jour complète. Ceci, à son tour, a débloqué le do-release-upgrade commande. Cela n'a pas fonctionné complètement la première fois, j'ai dû exécuter apt-get update à nouveau, nettoyer les paquets inutiles et supprimer les deux paquets qui étaient en conflit, et mettre à jour.

Après quelques heures et une autre mise à niveau de la version 18, le système fonctionnait sous Ubuntu 20.04-LTS et j'ai pu réinstaller les deux paquets manquants de l'étape précédente. Tout va bien maintenant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X