Comment puis-je utiliser le module de requête node.js pour effectuer un appel SSL avec mon propre certificat?
Je suis en utilisant node.js et cela demande un module pour faire des HTTP appels vers un autre serveur.
https://github.com/mikeal/request
Il fonctionne très bien. J'ai maintenant besoin de modifier ce code pour effectuer les appels sur SSL, à l'aide de mon entreprise certificat SSL. À la demande du module de docs, il est dit ceci à propos de l'strictSSL option:
"strictSSL - mettre à true pour exiger que les certificats SSL valide. Remarque: pour utiliser votre propre autorité de certification, vous devez spécifier un agent qui a été créé avec qui ca comme une option."
Cela ressemble à ce que je dois faire, mais je ne comprends pas cette phrase: "spécifier un agent qui a été créé avec qui ca comme une option.".
1) Que veulent-ils dire par "un agent"?
2) Comment puis-je "spécifier un agent"
3) Comment puis-je créer l'agent avec qui ca comme une option"?
Un exemple de code serait incroyable, mais tous les fils serait utile. Merci.
source d'informationauteur Jake
Vous devez vous connecter pour publier un commentaire.
Cette mesure donne des précisions sur Peter Lyons répondrefournissant un exemple.
Je suis en supposant que vous demandez un domaine exécutant sur HTTPS avec un certificat signé par votre propre autorité de certification (ca).
Lors de l'utilisation de la demande de bibliothèquecomme vous le faites, il n'est pas nécessaire d'instancier l'agent, vous pouvez simplement fournir quelques
agentOptions
à la demande que vous faites. Voici un exemple:La chose importante ici est la
agentOptions
qui vous fournir le certificat d'une autorité de certification. Tous les domaines de l'aide des certificats signés par l'autorité de certification sont maintenant acceptées. Imaginez un ca CA1 a signé trois domaines, D1D2D3. Réglage de l'autorité de certification pour CA1 résultats en permettant des requêtes à tous les domaines D1D2D3 (mais pas D4 signé par une autre autorité de certification).Point de l'être: le
"certs/ca.cert.pem"
doit être le certificat de le certificat de signature de l'autorité.http
modulerequest
dans lepool
option je crois, bien que je ne l'ai pas fait moi-même et les docs sont en effet clairsemée sur les détails ici. Basé sur l'écrémage, le code, je pense que vous pourriez juste besoinoptions.ca
options.ca
et il utilise ici dansgetAgent
Donc mon avis est peut-être juste passer dans
options.ca
comme une chaîne de caractères qui est la clé publique de votre entreprise, certificat de l'autorité et de voir si la demande n'est la bonne chose à partir de là.Pour plus de détails,vous pouvez consulter à partir de
nodejs#demande
Je suis arrivé à la même question, et creusé autour, et j'ai enfin trouvé ce test pour être un meilleur exemple de ce dont nous avons besoin:
https://github.com/mikeal/request/blob/63f31cb1d170a4af498fbdd7566f867423caf8e3/tests/ssl/ca/server.js
je suis peut-être mauvaise compréhension du problème, mais dans mon expérience, vous n'avez pas besoin de faire quelque chose de spécial à tous, si vous
require('https')
l'appel passe automatiquement sur SSL.Je viens de tester avec mon api google maps appel et en effet, si je
require('http')
Google se plaint qu'il veut à l'appel pour venir en aide du protocole SSL, mais lorsque j'ajoute les
tout fonctionne comme prévu.