2012-04-25 4 views
2

У меня есть приложение Node.js, запущенное на моем сервере Linode, и моему серверу потребуется SSL.Как получить сертификат SSL относится к моему приложению Node.js?

Я понимаю, что нужно купить один, что-то вроде этого: http://www.namecheap.com/ssl-certificates/comodo/essential-ssl-certificate.aspx

Я понимаю, что нужно, чтобы получить выделенный IP-адрес и следуйте инструкциям: http://library.linode.com/security/ssl-certificates/commercial

То, что я не понимаю, как мой Узел приложения будет знать об этом сертификате SSL? Поддерживает ли мое приложение Node?

ответ

2

Вы должны запустить https-сервер.

Если вы работаете в expressjs, вы можете сделать что-то подобное - с помощью сертификата и ключа вы получите форму своего поставщика ssl.

var express = require('express') 
    , fs = require("fs"); 

var privateKey = fs.readFileSync('security/privatekey.pem').toString(); 
var certificate = fs.readFileSync('security/certificate.pem').toString(); 

// to enable https 
var app = module.exports = express.createServer({key: privateKey, cert: certificate}); 

Надеюсь, что это поможет.

EDIT:

Вы можете проверить это link - этот парень использует стандартную реализацию сервера узла и не выразить. Однако я не уверен, изменилась ли безопасность api - этой должности почти 2 года.

1

Ваш сервер должен быть настроен с сертификатом (и его закрытым ключом), поскольку он удостоверяет его личность для пользователей. Сертификат сервера предоставляется браузеру во время установления связи TLS при запуске HTTPS-соединения.

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

+0

Я согласен с этим 99%, однако, если вы разрешаете приложению работать на http или https, по крайней мере, ему нужно знать, к какому протоколу пришел запрос, так что правильный исходный протокол можно использовать при генерации ссылки в шаблонах и ответах и ​​т. д. –

+0

Вы можете использовать относительные URL-адреса протокола, чтобы избежать необходимости динамически. URL-адрес «//stackoverflow.com» будет автоматически использовать тот же протокол, что и текущая страница. Там все равно будут случаи, когда вы хотите, чтобы посетитель только просматривал определенные «страницы» через https (например, страницы входа). – Kitsune

+0

@ Kitsune, это совсем не связано с протокольными URL-адресами. Использование таких URL-адресов не позволяет серверу прослушивать порт 443 или настраивать его для обслуживания страниц через HTTPS. Магия просто не случится. – Bruno