Подтвердить что ты не робот

Создание ключа SSL для работы с node.js

Я работаю над настройкой SSL через GoDaddy для использования с моим сервером node.js на AWS EC2. Я не смог заставить его работать.

Вот что я пробовал:

Предназначен для домена: files.mysite.com

На сервере я запускаю:

$ openssl req -new -newkey rsa:2048 -nodes -keyout files.mysite.key -out files.mysite.csr

Common Name: files.mysite.com
password: left empty

Затем я получаю CSR: vim files.mysite.csr

Скопируйте и вставьте из:

-----BEGIN CERTIFICATE-----
......... lots of stuff
-----END CERTIFICATE-----

В конце есть лишняя пустая строка, которую я оставляю и вставляю в интерфейс GoDaddy с помощью ключа.

Затем я загружаю ключ godaddy, который обеспечивает:

gd_bundle.crt
files.mysite.com.crt

Затем в node я вставляю:

key: fs.readFileSync('server.key').toString(),
cert: fs.readFileSync('server.crt').toString()

Я не уверен, что такое server.key или server.crt, учитывая, что GoDaddy предоставляет два crt файла?
Вы можете помочь?

4b9b3361

Ответ 1

GoDaddy использует промежуточный сертификат для подписания вашего сертификата. Это имеет несколько преимуществ как для вас, так и для GoDaddy. Но требуется немного больше работы, чтобы заставить его работать (немного, в основном, для игры в Google).

В node.js их можно установить следующим образом:

require('https').createServer({
    key: fs.readFileSync('files.mysite.com.key'),
    cert: fs.readFileSync('files.mysite.com.crt'),
    ca: [fs.readFileSync('gd_bundle.crt')] // <----- note this part
}, app).listen(443);

Ответ 2

Вы должны использовать файлы .crt и .key при создании вашего экземпляра http-сервера. Следующий фрагмент даст вам идею:

require('https').createServer({
    key: fs.readFileSync('/path/to/something.key'),
    cert: fs.readFileSync('/path/to/something.crt'),
}, app).listen(443);

Если у вас есть ключевая фраза для вашего ключа, вы можете передать ее, как показано ниже:

require('https').createServer({
    key: fs.readFileSync('/path/to/something.key'),
    cert: fs.readFileSync('/path/to/something.crt'),
    passphrase: 'your_secret_passpahrase'
}, app).listen(443);