web-dev-qa-db-fra.com

Erreur Node.JS - processus.env.NODE_TLS_REJECT_UNAUTHORIZED. Qu'est-ce que ça veut dire?

Je suis nouveau dans le développement back-end. Et j'aime vraiment écrire du code dans le nœud. Cependant, il y a peu de choses que je n'arrive pas à saisir. J'ai continué à recevoir l'erreur suivante:

Erreur: DEPTH_ZERO_SELF_SIGNED_CERT

Je l'ai corrigé en implémentant le code suivant:

if ('development' == app.get('env')) {
    console.log("Rejecting node tls");
    process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
}

Je comprends que nous créons un environnement. Mais qu'est-ce que cela signifie dans un langage simple? Je ne sais pas comment l'expliquer à quelqu'un d'autre. Il y a beaucoup d'informations sur la façon de résoudre ce problème, mais je ne trouve rien sur ce que cela fait réellement signifie.

Quelqu'un peut-il expliquer?

16
Mihir Patel

Le nœud se plaint parce que le certificat TLS (SSL) qui lui a été donné est auto-signé (c'est-à-dire qu'il n'a pas de parent - une profondeur de 0). Il s'attend à trouver un certificat signé par un autre certificat installé dans votre système d'exploitation en tant que racine de confiance.

Votre "correctif" consiste à désactiver Node de rejeter les certificats auto-signés en autorisant TOUT certificat non autorisé.

Votre correctif n'est pas sécurisé et ne devrait pas vraiment être fait du tout, mais est souvent fait en développement (il ne devrait jamais être fait en production).

La bonne solution devrait être de placer le certificat auto-signé dans votre magasin racine de confiance OR pour obtenir un certificat approprié signé par une autorité de certification existante (qui est déjà approuvée par votre serveur).

En tant que point supplémentaire, votre enregistrement doit donc se lire "Désactivation du rejet par Node des certificats invalides/non autorisés"

22
Philip Whitehouse