Назад | Перейти на главную страницу

ssl-файлы: Nginx работает, а модуль Nodejs https - нет?

У меня есть экземпляр Node, работающий на экземпляре EC2. Я только что получил свой ssl-сертификат, закрытый ключ и пакет ca-bundle. поэтому я поместил их в Nodejs, например:

var options = {
  key: fs.readFileSync("/path/to/private/key"),
  crt: fs.readFileSync("/path/to/crt"),
  ca: fs.readFileSync("/path/to/ca")
}

var server = require("https").createServer(options, app).listen(443)

Но этот метод никогда не работал. Браузер продолжает говорить ERR_SSL_VERSION_OR_CIPHER_MISMATCH. Я подумал, что это должен быть правильный способ запустить https-сервер.

Через несколько часов, не обнаружив ни одной подсказки, я обратился к Nginx. Я запустил Nginx и настроил его конфигурацию на прием ssl через ключевые и crt файлы. Удивительно, но Nginx справился с этим хорошо и успешно передал трафик на мой сервер Node (который теперь прослушивает порт 3000 как порт прокси). Браузеры также получают контент через 443, и при этом горит значок безопасности https.

Так что с ключевыми файлами все в порядке, потому что Nginx использовал эти файлы, чтобы все исправить. Так как же сервер Node мог не включать ssl? Имеет ли это какое-либо отношение к EC2 или AWS в целом?