NodeJS UNABLE_TO_VERIFY_LEAF_SIGNATURE
Nous essayons d'utiliser Node.js (et Moka) comme un framework de test pour tester les appels d'API sur un serveur interne sur https.
Nous utilisons le nœud suivant les modules: Moka, Restify, et Devrait effectuer ces tests.
Lorsque nous moka testFileName.js, l'erreur majeure de retour est:
[2013-06-19 14:16:28.105] [ERROR] console - FAIL: Received error! [Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE]
Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE
at SecurePair.<anonymous> (tls.js:1283:32)
at SecurePair.EventEmitter.emit (events.js:92:17)
at SecurePair.maybeInitFinished (tls.js:896:10)
at CleartextStream.read [as _read] (tls.js:430:15)
at CleartextStream.Readable.read (_stream_readable.js:320:10)
at EncryptedStream.write [as _write] (tls.js:344:25)
at doWrite (_stream_writable.js:219:10)
at writeOrBuffer (_stream_writable.js:209:5)
at EncryptedStream.Writable.write (_stream_writable.js:180:11)
at write (_stream_readable.js:573:24)
at flow (_stream_readable.js:582:7)
at Socket.pipeOnReadable (_stream_readable.js:614:5)
at Socket.EventEmitter.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:408:10)
at emitReadable (_stream_readable.js:404:5)
at readableAddChunk (_stream_readable.js:165:9)
at Socket.Readable.push (_stream_readable.js:127:10)
at TCP.onread (net.js:511:21)
Après une recherche google et stackexchange il semble que nous avons un problème de certificat. À partir de là, nous avons installé une autorité de certification interne "public" cert, ainsi que l'exemple des certifications spécifiques que notre application utilise (il y a plusieurs redirections à traverser), à
/usr/local/etc/openssl/certs, legacy: /System/Library/Keychains/X509Anchors, /Library/Keychains/System.keychain, as well as in Keychain through the gui to our login and System keychains. However, we're still not getting anywhere.
Avant d'installer les certs dans ces lieux, nous ne pouvions pas "curl" de notre site sans certificat d'erreurs sur la ligne de commande; cependant, avec les installer maintenant, nous obtenons aucune erreur, mais le nœud encore explose.
Nous avons essayé plusieurs versions de Nœud, OpenSSL, ainsi que les diverses méthodes d'installation, y compris le téléchargement du package vs utilisation de l'homebrew.
Informations De L'Ordinateur:
- Mac OS X 10.8.4 (Aussi essayé avec 10.8.3)
- Nœud v0.8.18 (Aussi essayé avec: Nœud v0.10.11, v0.10.12)
- OpenSSL v1.0.1 e (Aussi essayé avec 0.9.8)
De Remue-Méninges Questions:
N'Node.js l'utilisation de son propre (fourni) version de OpenSSL à la place de ce qui est installé sur la machine locale?
Si c'est le cas, où est-il à la recherche pour les certificats?
Pourrait l'TLS.js dire Nœud de regarder ailleurs pour certs?
Est-il une approche pragmatique de l'écrasement de la les certificats utilisés; il semble qu'il pourrait y avoir des possibilités que nous pouvons utiliser comme ceci:
var options = {
ca: fs.readFileSync("[path to our CA cert file]"),
requestCert: true,
rejectUnauthorized: true
};
var req = https.request(options, function(res) {
...
});
Mais cela génère la même erreur.
source d'informationauteur user1984638
Vous devez vous connecter pour publier un commentaire.
UNABLE_TO_VERIFY_LEAF_SIGNATURE
Le problème, c'est que vous essayez d'installer un module à partir d'un référentiel avec un mauvais ou non approuvées
SSL
[Secure Sockets Layer] certificat. Qui n'est pas rare si vous travaillez dans une société que l'auto signes de ses certificats pour les internes de dépôts.Pour contourner ce problème, vous pouvez exécuter la commande suivante:
Comme une meilleure pratique, il est sage de revenir à la vraie postfaces de sorte que vous n'avez pas accidentellement installer un non approuvés module que vous avez réellement n'avez pas confiance.
Essayez quelque chose comme:
Prises de http://permalink.gmane.org/gmane.comp.mozilla.identity.devel/3762
Il a travaillé pour moi lorsque toutes les autres solutions ont échoué, il semble que ce doit être appliqué sur le mondial de l'agent.
Pouvez-vous essayer d'ajouter de la
--insecure
option, lors de l'exécution de la commande?parfois, si vous utilisez un réseau avec certaines configurations de proxy, mnp ne parvient pas à vérifier des signatures des paquets.
Essayer cela,
Prises de https://github.com/Leaflet/Leaflet/issues/2860
Après,
Il va travailler. J'ai essayé ce.