Как уже упоминалось, вы должны рассмотреть лучшее общее решение с точки зрения CloudFlare или SSL-разгрузки через nginx и т. Д.
Однако для этого можно использовать greenlock-express.js , чтобы получить SSL с LetsEncrypt непосредственно в среде узла Sails .
Пример ниже:
- Конфигурирует приложение HTTP Express, используя greenlock на порту 80, который обрабатывает
перенаправляет на HTTPS и бизнес-логику LetsEncrypt.
- Использует конфигурацию SSL «greenlock» для настройки основного приложения Sails в качестве HTTPS на порту 443.
Пример конфигурации для config/local.js
:
// returns an instance of greenlock.js with additional helper methods
var glx = require('greenlock-express').create({
server: 'https://acme-v02.api.letsencrypt.org/directory'
, version: 'draft-11' // Let's Encrypt v2 (ACME v2)
, telemetry: true
, servername: 'domainname.com'
, configDir: '/tmp/acme/'
, email: 'myemail@somewhere.com'
, agreeTos: true
, communityMember: true
, approveDomains: [ 'domainname.com', 'www.domainname.com' ]
, debug: true
});
// handles acme-challenge and redirects to https
require('http').createServer(glx.middleware(require('redirect-https')())).listen(80, function () {
console.log("Listening for ACME http-01 challenges on", this.address());
});
module.exports = {
port: 443,
ssl: true,
http: {
serverOptions: glx.httpsOptions,
},
};
Сведения о точной настройке конфигурации см. В документации по зеленому блокированию, но вышеизложенное позволяет использовать LetsEncrypt из коробки с Sails.
Также обратите внимание, что вы можете разместить эту конфигурацию где-то вроде config/env/production.js
в зависимости от ситуации.