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