Как настроить SSL-сертификат для сервера express.js?

Раньше, в более старой версии express, я мог бы сделать это:

express.createServer({key:'keyFile', cert:'certFile'}); 

Однако в более новых версиях выражения это больше не работает:

 var app = express(); 

Должен ли я вызвать app.use() для установки сертификатов? Если да, то как?

См. Экспресс-документы, а также Документы узла для https.createServer (это то, что рекомендуется использовать express):

 var privateKey = fs.readFileSync( 'privatekey.pem' ); var certificate = fs.readFileSync( 'certificate.pem' ); https.createServer({ key: privateKey, cert: certificate }, app).listen(port); 

Другие параметры для createServer: http://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener

Мне удалось заставить SSL работать со следующим шаблоном:

 var fs = require('fs'), http = require('http'), https = require('https'), express = require('express'); var port = 8000; var options = { key: fs.readFileSync('./ssl/privatekey.pem'), cert: fs.readFileSync('./ssl/certificate.pem'), }; var app = express(); var server = https.createServer(options, app).listen(port, function(){ console.log("Express server listening on port " + port); }); app.get('/', function (req, res) { res.writeHead(200); res.end("hello world\n"); }); 

Это мой рабочий код для express 4.0 .

express 4.0 очень отличается от 3.0 и других.

4.0 у вас есть / bin / www файл, который вы собираетесь добавить сюда.

«npm start» является стандартным способом запуска Express 4.0 сервера.

Функция readFileSync () должна использовать __dirname получить текущий каталог

while require () использовать ./ ссылаться на текущий каталог.

Сначала вы помещаете файл private.key и public.cert в папку / bin, это та же папка, что и WWW-файл .

не обнаружена такая ошибка каталога:

  key: fs.readFileSync('../private.key'), cert: fs.readFileSync('../public.cert') 

ошибка, такой каталог не найден

  key: fs.readFileSync('./private.key'), cert: fs.readFileSync('./public.cert') 

Рабочий код должен быть

 key: fs.readFileSync(__dirname + '/private.key', 'utf8'), cert: fs.readFileSync(__dirname + '/public.cert', 'utf8') 

Полный код https:

 const https = require('https'); const fs = require('fs'); // readFileSync function must use __dirname get current directory // require use ./ refer to current directory. const options = { key: fs.readFileSync(__dirname + '/private.key', 'utf8'), cert: fs.readFileSync(__dirname + '/public.cert', 'utf8') }; // Create HTTPs server. var server = https.createServer(options, app); 
  • Как сказать Maven игнорировать ошибки SSL (и доверять всем сертификатам)?
  • VBA ServerXMLHTTP запрос https с самозаверяющим сертификатом
  • Создавать самостоятельно подписанный сертификат на лету
  • Сертификаты SSL привязаны к IP-адресу серверов?
  • Безопасное исправление: javax.net.ssl.SSLPeerUnverifiedException: нет однорангового сертификата
  • Возможно ли иметь сертификат SSL для IP-адреса, а не доменное имя?
  • ошибка получения: «Ошибка: ошибка SSL: SELF_SIGNED_CERT_IN_CHAIN» при использовании npm
  • Как восстановить отсутствующий сертификат IIS Express SSL?
  • Не удалось создать путь PKIX: не удалось найти допустимый путь сертификации для запрошенной цели
  • Сертификат клиента SSL в Maven
  • Java: загрузка SSL Keystore через ресурс
  • Interesting Posts

    Copy-paste перестает работать в Windows 7

    Код командной строки для подключения программы к панели задач Windows 10?

    Планирование задачи перед сном в Windows 7 и сохранение события сна до запуска задачи

    Как настроить Ruby on Rails без базы данных?

    Почему реализация Equals для анонимных типов сравнивает поля?

    В чем разница между MultiCore и MultiProcessor?

    Как получить выбранный пользователем формат даты в Android?

    Каков правильный счетчик производительности для получения процессора и использования памяти в процессе?

    Почему Html.Raw ускоряет амперсанд в привязном теге в ASP.NET MVC 4?

    Netbeans, как установить аргументы командной строки в Java

    Использование BufferedReader.readLine () в цикле while

    Почему “ “ лучше, чем `подмножество`?

    Почему мой журнал в пространстве имен std?

    Для запуска Eclipse должен быть доступен JRE или JDK. После поиска в следующих местах JVM не обнаружено

    Что такое конверсия захвата на Java и может ли кто-нибудь дать мне примеры?

    Давайте будем гением компьютера.