проверять запросы https с помощью центра сертификации (CA) - PullRequest
0 голосов
/ 15 апреля 2020

Я развернул несколько микросервисов, содержащих приложение внешнего интерфейса и службу внутреннего сервера.

Приложение внешнего интерфейса доступно через домен xyz.com . Он вызывает конечную точку API бэкэнд-сервиса.

Итак, я действительно хочу проверить, является ли любой запрос, исходящий из приложения внешнего интерфейса, действительным и из источника authenti c на основе его домена и субдомена с использованием центра сертификации в Node.js.

После небольшого исследования того, как это можно сделать в node.js, я обнаружил, что это можно сделать с помощью nodejs модуля request модуля *. Но проблема с этим подходом состоит в том, что nodejs поддерживает список сертификатов CA , который легко устаревает, и есть вероятность, что CA, который подтвердил мой сертификат домена, не является частью этого списка , Несмотря на то, что они предоставляют способ передать дополнительные CA, все же это зависит от пользователя, что они должны поддерживать список. В настоящее время я немного растерялся из-за того, как правильно это сделать.

Мне нужна помощь, чтобы легко и эффективно выполнить этот процесс.

1 Ответ

0 голосов
/ 23 апреля 2020

Существует два способа проверки домена в node.js

https.request

Nodejs Метод запроса модуля https проверяет домен, предоставленный по цепочка удостоверяющих органов root сертификат. Пример кода приведен ниже:

var https = require('https');

var options = {
  hostname: 'github.com/',
  port: 443,
  path: '/',
  method: 'GET',
  rejectUnauthorized: true
};

var ss;
var req = https.request(options, function(res) {
  console.log("statusCode: ", res.statusCode);
  console.log("headers: ", res.headers);

});
req.end();

req.on('error', function(e) {
  console.error(e);
});

rejectUnauthorized : Это означает, что он будет проверять сертификат сервера / домена по цепочке ЦС root сертификат.

Единственная проблема с этим подходом состоит в том, что эту цепочку следует регулярно обновлять, в противном случае новый домен, который подписан центром сертификации root сертификатом, который не является частью цепочка, помеченная как недействительный сертификат (общий пример - самозаверяющий сертификат).

ssl-validate module

Его также можно использовать, но для получения информации о домене требуется другой модуль.

...