2014-04-04 22 views
9

come specificato nel documento api del nodo Ho provato il primo con un certificato creato e firmato utilizzando openssl. Tutto andava bene, tranne il fatto che non era possibile testare il lato client da un androide perché era necessario un certificato ca. Quando provo il secondo metodo (quello con pfx e non con la chiave, CERT) https.createserver genera un erroremac verifica l'errore utilizzando il nodo con il certificato ssl

crypto.js:145 
     c.context.loadPKCS12(pfx); 
       ^
Error: mac verify failure 
    at Object.exports.createCredentials (crypto.js:145:17) 
    at Server (tls.js:1130:28) 
    at new Server (https.js:35:14) 
    at Object.exports.createServer (https.js:54:10) 
    at Object.<anonymous> (C:\iTollonServer\iTollonServer\iTollonServer\app.js:105:7) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 

codice dal nodo Api:

// curl -k https://localhost:8000/ 
var https = require('https'); 
var fs = require('fs'); 

var options = { 
    key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), 
    cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') 
}; 

https.createServer(options, function (req, res) { 
    res.writeHead(200); 
    res.end("hello world\n"); 
}).listen(8000); 
Or 

var https = require('https'); 
var fs = require('fs'); 

var options = { 
    pfx: fs.readFileSync('server.pfx') 
}; 

https.createServer(options, function (req, res) { 
    res.writeHead(200); 
    res.end("hello world\n"); 
}).listen(8000); 

risposta

27

bene nel caso pfx si dovrebbe aggiungere l'opzione

passphrase: 'password' 
+7

nel caso in cui si sta cercando per il campione apnagent campione per l'attuazione node.js in Mac, come me, il file di esempio originale non è completa da solo impostando ** agent.set ('file PFX', pfx); **, è necessario aggiungere anche un li ne come: ** agent.set ("passphrase", ); ** per evitare il fallimento di verifica mac –

+0

Ecco i documenti correlati per i parametri: https://nodejs.org/api/tls .html # tls_tls_createserver_options_secureconnectionlistener – Coreus