Impossible de vérifier la signature de la feuille
Je suis en utilisant node.js request.js pour parvenir à un api. J'obtiens cette erreur
[Erreur: UNABLE_TO_VERIFY_LEAF_SIGNATURE]
Toutes mes informations sont exactes et valides, et le serveur est très bien. J'ai fait la même demande avec facteur.
request({
"url": domain+"/api/orders/originator/"+id,
"method": "GET",
"headers":{
"X-API-VERSION": 1,
"X-API-KEY": key
},
}, function(err, response, body){
console.log(err);
console.log(response);
console.log(body);
});
Ce code est juste en cours d'exécution dans un script exécutable ex. node ./run_file.js
, C'est pourquoi? Est-il besoin d'exécuter sur un serveur?
- C'est un long shot, mais se pourrait-il que l'API est de ne pas reconnaître l'agent utilisateur d'être passé par votre nœud programme?
- Hum...voir aussi ceci: blog.gaeremynck.com/fixing-unable_to_verify_leaf_signature
- J'ai pu lire de l'api dans le postier parfaitement. Pourquoi pas le nœud de le faire? J'ai essayé de changer le user agent, pas de chance.
Vous devez vous connecter pour publier un commentaire.
Note: la suite est dangereux, et permettra à l'API de contenu pour être interceptées et modifiées entre le client et le serveur.
Ça marchait aussi
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
nodemailer
etnodemailer-smtp-transport
et général, de la même commande a fonctionné. Vous devez l'ajouter à votrecreateTransport
objet:tls:{rejectUnauthorized: false}
Ce n'est pas un problème avec l'application, mais avec le certificat qui est signé par un intermédiaire, CA.
Si vous accepter ce fait et encore envie de continuer, ajoutez les lignes suivantes à la demande options:
Demande complète:
La Solution Sécuritaire
Plutôt que de désactivation de sécurité, vous pouvez ajouter les certificats nécessaires à la chaîne. Tout d'abord installer ssl-racine-cas paquet de mnp:
Ce paquet contient de nombreux certificats intermédiaires, les navigateurs de confiance, mais aussi de noeud ne.
Va ajouter les certificats manquants. Voir ici pour plus d'infos:
https://git.coolaj86.com/coolaj86/ssl-root-cas.js
Aussi, Voir la réponse ci-dessous
ca
tableau. Je ne sais pas si son module http cherchera également à l'OS de la chaîne. Cependant, curl sur OS X semble être la seule à utiliser le système d'exploitation de la chaîne et ne pas permettre spécifié manuellement certs.CoolAJ86 la solution est correcte et il n'a pas compromettre votre sécurité, comme la désactivation de toutes les vérifications à l'aide de
rejectUnauthorized
ouNODE_TLS_REJECT_UNAUTHORIZED
. Encore, vous pourriez avoir besoin d'injecter un supplément de certificat d'AC explicitement.J'ai essayé en premier les autorités de certification racines inclus par le ssl-racine-cas module:
J'ai toujours fini avec la
UNABLE_TO_VERIFY_LEAF_SIGNATURE
erreur. Puis, j'ai découvert qui a délivré le certificat pour le site web, j'ai été de la connexion par le COMODO SSL Analyseur, téléchargé le certificat de l'autorité et essayé d'ajouter seulement que l'on:J'ai une autre erreur:
CERT_UNTRUSTED
. Enfin, j'ai injecté le supplémentaires des autorités de certification racine et inclus "mon" (apparemment intermédiaire) CA, qui a travaillé:.cer
exécuter ceopenssl x509 -inform DER -in YOUR_CERTIFICATE.cer -out YOUR_CERTIFICATE.crt
de convertir-t-il à un.crt
à l'avanceJuste de mettre ça ici au cas où il permet à quelqu'un, mon cas était différent et un peu d'un mélange bizarre. J'ai été faire cela sur une demande qui est accessible via superagent - le problème n'avait rien à voir avec des certificats (qui ont été configurés correctement) et tout à voir avec le fait que j'ai été en passant ensuite le superagent résultat par le biais de la async du module de cascade en rappel. Pour corriger: au Lieu de passer tout le résultat, il suffit de passer
result.body
à travers la cascade de rappel.Pour Créer Réagir Application (lorsque cette erreur se produit également, et cette question est le n ° 1 de résultats sur Google), vous êtes probablement en utilisant
HTTPS=true npm start
et unproxy
(enpackage.json
) qui va à certains HTTPS API qui lui-même est auto-signé, quand dans le développement.Si c'est le cas, envisager de changer de
proxy
comme ceci:secure
décide si le WebPack proxy vérifie la chaîne de certificats ou pas et la désactivation de la qui assure l'API certificat auto-signé n'est pas vérifiée de sorte que vous obtenez de vos données.J'ai eu les mêmes problèmes. J'ai suivi de @ThomasReggi et @CoolAJ86 solution et bien fonctionné, mais je ne suis pas satisfait de la solution.
Parce que "UNABLE_TO_VERIFY_LEAF_SIGNATURE" de l'émission est produit en raison de certification niveau de la configuration.
J'accepte @thirdender solution mais sa solution partielle.Comme par le nginx site officiel, ils ont clairement mentionné certificat doit être la combinaison du certificat du serveur et les chaînes de certificats.
J'ai eu un problème avec ma configuration d'Apache après l'installation d'un certificat GoDaddy sur un sous-domaine. J'ai d'abord pensé qu'il pourrait être un problème avec Noeud pas l'envoi d'un Serveur de Nom de l'Indicateur (SNI), mais ce n'était pas le cas. L'analyse de la sous-domaine certificat SSL avec https://www.ssllabs.com/ssltest/ a renvoyé l'erreur de les problèmes de la Chaîne: Incomplet.
Après l'ajout de la GoDaddy fourni
gd_bundle-g2-g1.crt
fichier via leSSLCertificateChainFile
directive Apache, le Noeud a été en mesure de se connecter via HTTPS et l'erreur a disparu.Mettre rejectUnauthorized: faux dans la pétition, et qui a fonctionné pour moi.
Vous devez inclure le certificat Intermédiaire de votre serveur. Cela résout le [Erreur: UNABLE_TO_VERIFY_LEAF_SIGNATURE]