2014-04-04 5 views
9

wie in der Node API doc Ich habe versucht die erste mit einem selbst erstellten und signierten Cert mit openssl. Alles lief gut, außer der Tatsache, dass die Client-Seite von einem Android nicht getestet werden konnte, da ein CA-Zertifikat benötigt wurde. Wenn ich versuche, die zweite Methode (das mit pfx und nicht mit Schlüssel, cert) https.createserver einem Fehler wirftmac verify failure using Knoten mit ssl Zertifikat

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) 

Code von Knoten 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); 

Antwort

27

gut im pfx Fall sollten Sie hinzufügen die Option

passphrase: 'password' 
+7

falls Sie für node.js Implementierung in mac, wie ich für die Probe apnagent Probe suchen, ist die ursprüngliche Beispieldatei nicht vollständig durch nur Einstellung ** agent.set (‚pfx Datei‘, pfx); **, Sie müssen auch einen li hinzufügen ne wie: ** agent.set ("Passphrase", ); ** um den Fehler bei der Mac-Überprüfung zu vermeiden –

+0

Hier sind die zugehörigen Dokumente für die Parameter: https://nodejs.org/api/tls .html # tls_tls_createserver_options_secureconnectionlistener – Coreus

Verwandte Themen