Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Nikkilla
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 62

Настройка SSL сертификата на сервере NodeJS

02.05.2016, 10:17. Показов 5898. Ответов 0
Метки https, n, ssl (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Возникла проблема при подключении SSL сертификата к серверу на NodeJS

Вот код, где запускается HTTPS сервер
JavaScript
1
2
3
4
5
6
const ssl = {
  key: fs.readFileSync('security/key.pem', 'utf8'),
  cert: fs.readFileSync('security/cert.pem', 'utf8')
};
 
https.createServer(ssl, mainProccess).listen(8000);
При запуске выскакивает эта ошибка:
_tls_common.js:65
c.context.setCert(options.cert);
^

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Error (native)
at Object.createSecureContext (_tls_common.js:65:17)
at Server (_tls_wrap.js:736:25)
at new Server (https.js:17:14)
at Object.exports.createServer (https.js:37:10)
at Object.<anonymous> (F:\Work\EvilCats\MainService\node.js:13 7:7)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)

Есть несколько моментов которые мне не совсем понятны в данной ситуации:

1) В модуль https при запуске передаются 2 SSL ключа.
SSL сертификат получал от reg.ru
Они мне прислали: сертификат (как я понимаю обычный) (CERTIFICATE), Корневой сертификат (CERTIFICATE), Промежуточный сертификат (CERTIFICATE), Запрос на получение сертификата (CERTIFICATE REQUEST), приватный ключ (RSA PRIVATE KEY).
Для поля 'key' загружаю приватный ключ.
Для поля 'cert' загружаю обычный сертификат.

2) Все сертификаты были предоставлены в формате:
(XXXXXXX - добавил я, заменив часть сертефиката выкладывая на форум)
-----BEGIN CERTIFICATE-----
MIIEbDCCAlQCAXXXXXXXXXXXXXXXXXXXXXXXXXXX XAMMD3d3dy5ldmlsY2F0
cy5ydTCCAiIwDQYJKXXXXXXXXXXXXXXXXXXXXXXX XXXXXggIBAL2FkJ4IZqncszB/
fNH8SN9WKAJjiqbiXXXXXXXXXXXXXXXXXXXXXXXX XXXX+MxiayvIx9uu87WEAw
U8U4YgGsPPz8ExaKjHXXXXXXXXXXXXXXXXXXXXXX XXXXXX7goGZmPEk/GOLhpEcr
z/tUfwlYUw7fXJq/vOXXXXXXXXXXXXXXXXXXXXXXXXXXXXoxzKuZkAJY enfYiXACbj
s/tvBqeOV2VL9bc+XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXZKg744k07fha9CA2k
J6kfV95QWyTgz/WXXXXXXXXXXXXXXXXXXXXXXXXXXXXg9GPf+ZzvSF UJmWusR
cqOStfCQTxQlmZ3EXXXXXXXXXXXXXXXXXXXXXXXX XXXXO9/foAeY8PyZQ4lp
xrYwKmtS3Va/OxXXXXXXXXXXXXXXXXXXXXXXXXXXXXwyqXV/62wLjhq
cztljqhC/NL2DfYUe3XXXXXXXXXXXXXXXXXXXXXXXXXXXX0/neODLNR1lC8APiC/
GHd6QN3rFDZWg1zXXXXXXXXXXXXXXXXXXXXXXXXX XXX6t/7YtdrQ3lj0q+sAKeGC
4jczRUtG6QYRxHhCXXXXXXXXXXXXXXXXXXXXXXXX XXXXXvHzKYiKwmCctq6Mz
02uZ67qTolpvwMBTXXXXXXXXXXXXXXXXXXXXXXXX XXXXiG9w0BAQsFAAOCAgEA
ZZF4+AHZu0f947oXXXXXXXXXXXXXXXXXXXXXXXXX XXXMQ24WVpgv1HSMisUY+
/1FH/c0oHCtfQ8yXXXXXXXXXXXXXXXXXXXXXXXXXXXXyf uNJ2vO2JHQMesXQn
u/HS8/yipHvLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXrDg 3yV9LORMZKewX74
5UKwc7hE2KKDNpKiIKXXXXXXXXXXXXXXXXXXXXXX XXXXXXX0Se4TBUbiU3a7ZqXL
KmWircagPkKBOjLLXXXXXXXXXXXXXXXXXXXXXXXX XXXXm5cInvbTVABgQ9gtP
woPFxFc5vgzgrhAXXXXXXXXXXXXXXXXXXXXXXXXX XXXW9BVzHDhacPD8TOb7YZCB
gA7d5Ti8A3XvAbXXXXXXXXXXXXXXXXXXXXXXXXXX XXupJg9tBsw6lBNacsjOPhN
AUYnQrhU8tAvYHd1xXXXXXXXXXXXXXXXXXXXXXXX XXXXXJhm2m2zpI7QURjTuAIdBg
yGXYgDYo2/SVCT/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXnbJ4ptNVRby q8M
bb2Es9Z2k6e7XXXXXXXXXXXXXXXXXXXXXXXXXXXX dU/ylnkvDfAynmicaTn
LbLP7xt4mZ1CXXXXXXXXXXXXXXXXXXXwMMkSmZj0 Vm/TTyM=
-----END CERTIFICATE-----
При добавлении сертификата в файл убрал знаки перехода на новую строку \r\n (из нагугленых примеров у всех сертификат представлял одну длинную строку в файле) и перекодировал в UTF8 для корректной загрузки нодой.

В итоге у меня получилось что то вроде этого:
-----BEGIN CERTIFICATE----- XXXXXXXXXXXXXXXXXXXXXXX -----END CERTIFICATE-----
Где XXXXXX - тело сертификата.
Что мне показалось странным - во всем примерах в файле сертификата присутствовли в начале и в конце "-----BEGIN CERTIFICATE-----" и "-----END CERTIFICATE-----" (для ключа у меня соответственно "RSA PRIVATE KEY") с пробелами в начале, конце и между телом сертификата.
Пробовал и без ("-----BEGIN CERTIFICATE-----" и т.д.), но результата это не дало.

Просьба "пролить мне свет" на этот "темный лес".
С сертификатами ни разу не работал, по примерам которые нашел - все перепробовал. Не помагает.
Подскажите пожалуйста, где моя ошибка. Буду очень признателен.

Добавлено через 21 минуту
Нашел причину. Прошу прощение за панику.

1) Порт для HTTPS нужно было сменить на 443
2) Сертификат должен быть в формате:
-----BEGIN CERTIFICATE-----
MIIF+TCCBOGgAwIBAgISESOXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXs0CvCVnxOXWZDq 9rhddeYv+S1
-----END CERTIFICATE-----
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.05.2016, 10:17
Ответы с готовыми решениями:

Установка SSL сертификата
Устанавливаю ssl сертификат в ispmanager. Не могу понять что нужно вписывать в поле &quot;цепочка сертификатов&quot; Подскажите...

Ssl-конвертация сертификата
если тема не там перетащите. есть сертификат формата PKCS #7 нужно его конвертировать в PEM. подскажите что в командной строке ввести

Создание SSL сертификата
Принимать от браузера запрос, и передаю его дальше, потом принимаю ответ и передаю браузеру Вопрос в том, что при SSL соединении нужно...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.05.2016, 10:17
Помогаю со студенческими работами здесь

Привязка SSL сертификата
Добрый день. Интересует вопрос, как на сервер привязать ssl сертификат. Зарегистрировались в системе https://globessl.com/ ...

Размещение ssl сертификата
Здравствуйте!!! Подскажите пожалуйста неопытному пока юзеру linux, я впервые настраиваю vds для размещения сайта на nodejs и nuxtjs,...

Установка Официально Ssl Сертификата
Всем привет! Кто нибудь имел опыт установки офф ssl сертификата на domino? я сделал csr запрос, подтвердил домен, мне пришли 4...

Создание бесплатного SSL-сертификата
Здравствуйте! Есть домен foto-dorog.ru и субдомен diveevo.foto-dorog.ru (появился на днях). Пока был один домен, SSL от...

Вопрос По Созданию Сертификата Ssl
Добрый день, подскажите пожалуйста! Настраиваю ssl на Domino 8.5.3, делаю по инструкции: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru