Я работаю над серверным приложением Node.js, которое поддерживает SSL и принимает сертификаты клиентов. Я использую следующий код для создания сервера https.
const options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem'),
ca: fs.readFileSync('ca.pem'),
requestCert: true,
rejectUnauthorized: true
};
https.createServer(options,app).listen(8090, function(){
console.log("Listening on 8090");
});
Другие клиентские приложения на базе Node.js могут подключаться с использованием своего сертификата SSL и получать ответ службы.
Однако, с моего сервера, я хочу сделать еще один вызов на сервере и передать тот же сертификат клиента, который я получил. Я просто хочу переслать тот же сертификат, я понимаю, что могу получить информацию о сертификате в объекте запроса, но как извлечь crt и ключ из этого объекта?
Я хочу сделать что-то вроде ниже:
app.get('/myservice', (req,res) => {
//req.socket.getPeerCertificate(true);
var agent = new https.Agent({
cert: somelibrary(req.socket.getPeerCertificate(true).??????),
key: somelibrary(req.socket.getPeerCertificate(true).??????),
});
fetch('http://AnotherServiceURL', { method: 'GET' agent}).then(function(response){
res.json(response);
});
});
Существует ли какая-либо библиотека, которая может преобразовывать данные сертификата запроса таким образом, чтобы они передавались как key
и cert
? Или есть другой / лучший способ сделать это?