Я хотел бы подключиться к внутреннему корпоративному серверу с Node.js в качестве клиента через HTTPS. Как установить внутренний корневой сертификат на Node.js, поэтому проверка сертификата прошла успешно?
Я не хочу отключать проверку сертификатов.
Я хотел бы подключиться к внутреннему корпоративному серверу с Node.js в качестве клиента через HTTPS. Как установить внутренний корневой сертификат на Node.js, поэтому проверка сертификата прошла успешно?
Я не хочу отключать проверку сертификатов.
Я решил проблему.
Используйте это, он работает как шарм: https://github.com/coolaj86/node-ssl-root-cas
Если вы используете Sails.js, поместите код в config/bootstrap.js
Добавьте переменную среды:
NODE_EXTRA_CA_CERTS=file
Когда установлено, хорошо известные "корневые" CA (такие как VeriSign) будут расширены дополнительными сертификатами в файле. Файл должен состоять из одного или нескольких доверенных сертификатов в формате PEM. Сообщение будет отправлено (один раз) с помощью process.emitWarning(), если файл отсутствует или имеет неправильный формат, но любые ошибки в противном случае игнорируются.
Обратите внимание, что ни общеизвестные, ни дополнительные сертификаты не используются, когда свойство ca options явно указано для клиента или сервера TLS или HTTPS.
Эта переменная среды игнорируется, когда узел запускается с правами setuid root или если установлены возможности файлов Linux.
Надеюсь, это поможет кому-то:
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/