Обновление
Использование Let's Encrypt via Greenlock.js
Оригинальный пост
Я заметил, что ни один из этих ответов не показывает, что добавляя Intermediate Root CA к цепочке, вот несколько примеров с нулевой конфигурацией , с которыми можно поиграть, чтобы увидеть, что:
Отрывок:
var options = {
// this is the private key only
key: fs.readFileSync(path.join('certs', 'my-server.key.pem'))
// this must be the fullchain (cert + intermediates)
, cert: fs.readFileSync(path.join('certs', 'my-server.crt.pem'))
// this stuff is generally only for peer certificates
//, ca: [ fs.readFileSync(path.join('certs', 'my-root-ca.crt.pem'))]
//, requestCert: false
};
var server = https.createServer(options);
var app = require('./my-express-or-connect-app').create(server);
server.on('request', app);
server.listen(443, function () {
console.log("Listening on " + server.address().address + ":" + server.address().port);
});
var insecureServer = http.createServer();
server.listen(80, function () {
console.log("Listening on " + server.address().address + ":" + server.address().port);
});
Это одна из тех вещей, которые часто проще, если вы не не пытаетесь сделать это напрямую через connect или express, но позвольте нативному https
модулю обработать это, а затем использовать это для обслуживания вас. приложение connect / express.
Кроме того, если вы используете server.on('request', app)
вместо передачи приложения при создании сервера, это дает вам возможность передать экземпляр server
некоторой функции инициализатора, которая создает приложение connect / express (если вы хотите сделать websockets через ssl на том же сервере, например).