2014-06-24 24 views
5

Bir HTTPS isteğinde bulunabilmem için bir dosyadan PFX ve parola göndermeye çalışıyorum. Başlamadan önce, PFX'in iyi olduğunu biliyorum ve bu sorun değil.Node.js - crypto.js - PFX başlığı çok uzun

aşağıdaki yapıyorum: Ben bir ajan haline seçeneklerimi geçirerek

config.options.pfx = fs.readFileSync('file.pfx'); 
config.options.passphrase = 'passphrase'; 

.

config.options.agent = new https.Agent(options); 

Sonra aşağıdaki hatayı alıyorum rquest inşa etmeye çalışın:

crypto.js:143 
     c.context.loadPKCS12(pfx, passphrase); 
      ^
Error: header too long 
    at Object.exports.createCredentials (crypto.js:143:17) 
    at Object.exports.connect (tls.js:1334:27) 
    at Agent.createConnection (https.js:79:14) 
    at Agent.createSocket (http.js:1293:16) 
    at Agent.addRequest (http.js:1269:23) 
    at new ClientRequest (http.js:1416:16) 
    at Object.exports.request (https.js:123:10) 

Ben bu onun özgün yazar için çalıştığını bildiğiniz bir çalışma deposundan bu kontrol etti. Bir sebepten ötürü benim kurulumum çalışmıyor.

+2

Bir ipucu: pfx sadece MS tarafından bastardized bir PKCS12 sürümüdür, bu yüzden bazı kripto araçları pfx ile çalışırken diğerleri - yok. openssl aracını kullanarak yerel PKCS12 oluşturmayı veya pfx'i PKCS12'ye dönüştürmeyi deneyin. –

cevap

6

Benzer bir sorunla karşılaştım. Bu, PEM dosyaları için doğru olan fs.readFileSync('file.pfx', 'utf8') kullanıyordu, ancak PKCS12 dosyaları ikili olduğundan, sadece fs.readFileSync('file.pfx') geçmelisiniz.

+1

Teşekkürler, bu gerçekten bana yardımcı oldu! – maiis