У меня есть действительный файл pem сертификата ssl.
openssl rsa -in cert.pem -passin "pass:password"
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAwqsU4MqkLOhm6xoueHu6x4U0zBBgcY+dQra3xD2ZJTXtvxDQ
...
...
...
jKV7oDM0gfEF1bq0OQD0uTaNDvLXWBFaBKx5yxahr1+LL6H1r5wK6Q==
-----END RSA PRIVATE KEY-----
Я использую действующий прокси-сервер, который отлично работает в моем браузере и использует стандартный протокол HTTP.
теперь, когда я запускаю свой код node.js.
var fs = require('fs');
var request = require('request');
const data = JSON.stringify({
"compression": "lz4", "replay" : false
});
var proxyServer = 'http://webproxy.e.corp.services:80';
var option = {
proxy: proxyServer,
method: 'POST',
url: 'https://10.51.13.6:8301/request/stream',
json: data,
ca: fs.readFileSync('/]path to]/cert.pem'),
passphrase: 'password',
headers: {
'Host': 'rests_client.xxx.xxxx.com'
}
}
request(option,function (error, response, body) {
if (error) {
return console.error('upload failed:', error);
}
console.log('Upload successful! Server responded with:', body);
});
Я получаю следующую ошибку:
upload failed: { Error: write EPROTO 4552209856:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:1498:SSL alert number 40
4552209856:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:659:
at WriteWrap.afterWrite [as oncomplete] (net.js:868:14) errno: 'EPROTO', code: 'EPROTO', syscall: 'write' }
Я действительно не могу понять, что мне не хватает.