Создание ключа 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 файла?
Вы можете помочь?
Ответы
Ответ 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);