Установите корневой сертификат на Node.js(клиент HTTPS)

Я хотел бы подключиться к внутреннему корпоративному серверу с Node.js в качестве клиента через HTTPS. Как установить внутренний корневой сертификат на Node.js, поэтому проверка сертификата прошла успешно?

Я не хочу отключать проверку сертификатов.

Ответ 1

Я решил проблему.

Используйте это, он работает как шарм: https://github.com/coolaj86/node-ssl-root-cas

  • Создать папку сертификатов
  • Поместите корневой сертификат там
  • Загрузите сертификат с указанным выше модулем

Если вы используете Sails.js, поместите код в config/bootstrap.js

Ответ 2

Добавьте переменную среды:

NODE_EXTRA_CA_CERTS=file

Когда установлено, хорошо известные "корневые" CA (такие как VeriSign) будут расширены дополнительными сертификатами в файле. Файл должен состоять из одного или нескольких доверенных сертификатов в формате PEM. Сообщение будет отправлено (один раз) с помощью process.emitWarning(), если файл отсутствует или имеет неправильный формат, но любые ошибки в противном случае игнорируются.

Обратите внимание, что ни общеизвестные, ни дополнительные сертификаты не используются, когда свойство ca options явно указано для клиента или сервера TLS или HTTPS.

Эта переменная среды игнорируется, когда узел запускается с правами setuid root или если установлены возможности файлов Linux.

Ответ 3

Надеюсь, это поможет кому-то:

var https = require('https');

var fs = require('fs');

var https_options = {

  key: fs.readFileSync("/path/to/private.key"),

  cert: fs.readFileSync("/path/to/your_domain_name.crt"),

  ca: [

          fs.readFileSync('path/to/CA_root.crt'),

          fs.readFileSync('path/to/ca_bundle_certificate.crt')

       ]
};

Ссылка: https://cheapsslsecurity.com/blog/how-to-install-ssl-certificate-on-node-js/

И вы можете использовать эту ссылку для проверки вашего сертификата: https://www.digicert.com/help/