inside22
@inside22

Как подключить SSL в NodeJS v4.2.1 без использования Express.js?

Доброй ночи.

Установил NodeJS v4.2.1 на Debian Jessie, подключил фреймворк Socket.IO для доставки данных по веб-сокету в браузер.

Столкнулся с проблемой, не смог подключить сертификаты чтобы подключаться к NodeJS по HTTPS.

Во всех примерах и документациях говорится что для того, чтобы подключить в NodeJS сертификат, нужно использовать еще один фреймворк Express.js, действительно ли это так? Или я что-то не правильно понял?

Вот моя рабочая конфигурация:

var fs = require('fs');
var express = require('express');
var app = express();

var options = {
	key: fs.readFileSync('/home/quotes/ssl/domain.key'),
	cert: fs.readFileSync('/home/quotes/ssl/domain.crt'),
	ca: fs.readFileSync('/home/quotes/ssl/gd_bundle-g2-g1.crt'),
	requestCert: true,
	rejectUnauthorized: false,
}

var server = require('https').createServer(options, app);
var io = require('socket.io').listen(server);


Можно как-то подключить SSL сертификат не используя фреймворк Express.js.
  • Вопрос задан
  • 5015 просмотров
Пригласить эксперта
Ответы на вопрос 3
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
А в доки ноды точно заглядывали?
Первый же экзампл: https://nodejs.org/api/https.html#https_https_crea...
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Что за нелюбовь к официальной документации? https://nodejs.org/api/https.html#https_https_crea..., прекрасно все без express работает.
Ответ написан
Комментировать
inside22
@inside22 Автор вопроса
Тимур Шемсединов и Константин Китманов, спасибо вам большое. Начинаю курить документацию.

Я правильно мыслю?
Сначала я создаю httpsOptions настройки, потом подгружаю https, потом создаю server с https и с нужными настройками, а далее подгружаю socket.io и говорю что надо использовать уже созданный server.
Я правильно мыслю?

var fs = require('fs');

var httpsOptions = {
        key: fs.readFileSync('/home/quotes/ssl/domain.key'),
        cert: fs.readFileSync('/home/quotes/ssl/domain.crt'),		
        ca: fs.readFileSync('/home/quotes/ssl/gd_bundle-g2-g1.crt'),
        requestCert: true,
        rejectUnauthorized: false,
}

var https = require('https');
var server = https.createServer(httpsOptions, https).listen(8443);

var io = require('socket.io');	
var app = io.listen(server);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы