web-dev-qa-db-fra.com

La mise à jour d'apt-get a échoué car la vérification du certificat a échoué car l'échec de la négociation sur un noeud source

L'exécution de Sudo apt-get update sur mon instance AWS EC2 Ubuntu 18.04.01 LTS échoue car mon échec de la vérification du certificat: le certificat n'est PAS approuvé. L'émetteur du certificat est inconnu lors d'une tentative d'accès à la version deb.nodesource.com/node_10.x bionic

Voici le résultat après l'exécution de 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 dans etc/ssl/certs, mais cela n'a pas aidé. Je ne sais pas exactement comment procéder à partir de là pour résoudre ce problème.

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

Merci d'avance!

1
Joe Haddad

Vous pouvez ajouter [trusted=yes] dans le sources.list. Par exemple:

deb [trusted=yes] http://ppa.launchpad.net/repo_name/pkg/ubuntu vivid main
deb-src [trusted=yes] http://ppa.launchpad.net/repo_name/pkg/ubuntu vivid main
1
Mike V.D.C.

Quelle est la cause du problème

J'essayais à l'origine d'installer Node.js sur Ubuntu 18.04.01 LTS via PPA et curl via:

curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh

Cependant, l'exécution de cette commande a généré un fichier nodesource.list dans etc/apt/sources.list.d/ avec le contenu suivant:

deb https://deb.nodesource.com/node_10.x xenial main
deb-src https://deb.nodesource.com/node_10.x xenial main

Ainsi, lors de l'exécution de Sudo apt update, ces sources ne pouvaient pas être approuvées via une liaison SSL, ce qui entraînait l'échec de la mise à jour.

Comment je l'ai corrigé

  1. Navigué vers /etc/apt/nodesource.list.d
  2. Suppression du fichier nodesource.list du système avec

    Sudo rm nodesource.list

  3. Purgé le système de toute installation actuelle de Node.js avec

    Sudo apt-get purge nodejs

    Sudo apt-get autoremove

  4. Installé la version Distro-Stable de Node.js pour Ubuntu avec:

    Sudo apt update

    Sudo apt install nodejs

    Sudo apt install npm

0
Joe Haddad

Vous pouvez remplacer https:// par http:// à partir du script d'installation à l'aide de sed.

curl -sL https://deb.nodesource.com/setup_10.x | sed 's|https://|http://|' | Sudo -E bash -

Cela devrait être utilisé comme la dernière alternative bien sûr.

0
Toilal