2017-10-06 2 views
0

Il existe un service qui fournit un XML sous une certaine URL (par exemple: https://myxml). L'organisation de ce service m'envoie un certificat p12 avec le mot de passe. Dans le navigateur, cela fonctionne correctement. Sur mon ordinateur local, j'utilise un serveur Node JS. Je veux envoyer une demande de mon serveur de noeud et obtenir la réponse du service.Erreur par nœud Demande JS au service externe avec certificat p12 requis

Je suis assez nouveau pour les certificats.

C'est l'erreur que je reçois après avoir essayé d'obtenir la demande du service

error:0906D06C:PEM routines:PEM_read_bio:no start line 

Ceci est la mise en œuvre dans le serveur de noeud

const request = require('request'); 
const fs = require('fs'); 
const path = require('path'); 
const certFile = path.resolve(__dirname, 'folder/cert.p12'); 

var options = { 
    url: 'https://myxml', 
    cert: fs.readFileSync(certFile), 
    passphrase: 'xyz' 
} 


request.get(options); 
request('https://myxml', function(error, response, body){ 
    console.log("error: ", error); 
    console.log("statusCode: ", response && response.statusCode); 
    console.log("body: ", body); 
}) 

Répondre

0

Essayez de lire le fichier en tant que binaire et en utilisant directement

var p12 = fs.readFileSync('file.p12', 'binary'); 
var p12Asn1 = forge.asn1.fromDer(p12, false); 
var p12Parsed = forge.pkcs12.pkcs12FromAsn1(p12Asn1, false, 'password'); 

également ajouter agentOptions dans la demande comme

request({ 
    method: 'GET', 
    url: 'https://myxml', 
    rejectUnauthorized: false, 
    strictSSL: false, 
    agentOptions: { 
     //pfx: pfx, 
     pfx: require('fs').readFileSync('string_path_to_the_p12_key_file.p12'), 
     passphrase: 'redacted_password' 
    } 
} 
+0

Ok je vais essayer, mais maintenant j'obtiens l'erreur: 'Impossible de lire la propriété « fromDer » de undefined' – WeSt

+0

' agentOptions' fonctionne aussi bien – anshuVersatile

+0

ok il n'y a pas d'erreurs avec agentOptions mais je reçois pas non plus réponse – WeSt