2014-06-24 17 views
5

Tôi đang cố tải trong PFX và cụm mật khẩu từ tệp để tôi có thể thực hiện yêu cầu HTTPS. Trước khi tôi bắt đầu, tôi đã biết rằng PFX là tốt và đó không phải là vấn đề.Node.js - crypto.js - tiêu đề PFX quá dài

Tôi đang làm như sau:

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

tôi đi qua tùy chọn của tôi vào một đại lý.

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

sau đó tôi cố gắng xây dựng các rquest nơi tôi nhận được lỗi sau:

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) 

Tôi đã kiểm tra này ra từ một kho lưu trữ công việc mà tôi biết rằng điều này làm việc cho tác giả ban đầu của nó. Vì lý do nào đó, thiết lập của tôi không chạy nó.

+2

Một gợi ý: pfx chỉ là một phiên bản PKCS12 bị MS phá hỏng, do đó một số công cụ mã hóa hoạt động với pfx trong khi các công cụ khác không hoạt động. thử tạo PKCS12 gốc hoặc chuyển pfx thành PKCS12 bằng công cụ openssl. –

Trả lời

6

Tôi gặp sự cố tương tự. Nó bật ra tôi đã sử dụng fs.readFileSync('file.pfx', 'utf8'), đó là chính xác cho các tập tin PEM, nhưng kể từ khi tập tin PKCS12 là nhị phân, bạn chỉ cần vượt qua trong fs.readFileSync('file.pfx').

+1

Cảm ơn, điều đó thực sự đã giúp tôi! – maiis

Các vấn đề liên quan