Let's Encrypt SSL (фреймворк sailsjs)

Есть ли какие-либо модули узлов для инфраструктуры sailsjs для создания сертификата ssl с использованием Let's encrypt?

Как включить TLS в gRPC-клиенте и сервере : 2
Как включить TLS в gRPC-клиенте и сервере : 2
Здравствуйте! 🙏🏻 Надеюсь, у вас все хорошо и добро пожаловать в мой блог.
Обновление драйверов Microsoft ODBC (с 17 до 18) для PHP
Обновление драйверов Microsoft ODBC (с 17 до 18) для PHP
Все знают, что PHP v7.4 потерял поддержку, и наши недавние старые приложения должны обновиться до PHP v8.x. ...
2
0
209
2

Ответы 2

Существует промежуточное программное обеспечение, которое включает перенаправление http-> https, а также обрабатывает запросы ACME-проверки от Let's Encrypt. Насколько я могу судить, на самом деле он не запускает обновление и ничего не записывает, но я считаю, что сценарии ACME обрабатывают это как задания cron каждые 3 месяца или около того, что позволяет приложению просто автоматически проверять правильность при запуске. Я сам еще не реализовал это.

Я также прошу вас действительно подумать об использовании CloudFlare или какой-либо другой службы SSL-терминации, поскольку это также дает вам множество других преимуществ, таких как защита от DDoS, некоторые функции CDN и т. д.

Документы:@ sailshq / спасательный жилет

Как уже упоминалось, вам следует рассмотреть лучшее общее решение с точки зрения CloudFlare или SSL-разгрузки через nginx и т. д.

Однако вы можете использовать greenlock-express.js для этого, чтобы достичь SSL с LetsEncrypt непосредственно в среде узла Паруса.

Пример ниже:

  1. Настраивает приложение HTTP Express, используя зеленый замок на порту 80, который обрабатывает перенаправляет на HTTPS и бизнес-логику LetsEncrypt.
  2. Использует конфигурацию SSL с зеленой блокировкой для настройки основного приложения 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: '[email protected]'
  , 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.info("Listening for ACME http-01 challenges on", this.address());
});

module.exports = {
  port: 443,
  ssl: true,
  http: {
    serverOptions: glx.httpsOptions,
  },
};

Обратитесь к документации greenlock для уточнения деталей конфигурации, но вышеупомянутое дает LetsEncrypt из коробки, работающую с Sails.

Также обратите внимание, что вы можете захотеть разместить эту конфигурацию где-нибудь, например, в config/env/production.js, если это необходимо.

Другие вопросы по теме