【发布时间】:2019-01-09 19:04:10
【问题描述】:
是否有任何用于sailsjs框架的节点模块使用let's encrypt制作ssl证书?
【问题讨论】:
标签: ssl https sails.js lets-encrypt greenlock
是否有任何用于sailsjs框架的节点模块使用let's encrypt制作ssl证书?
【问题讨论】:
标签: ssl https sails.js lets-encrypt greenlock
有一个中间件可以启用 http->https 重定向,还可以处理来自 Let's Encrypt 的 ACME 验证请求。据我所知,它实际上并没有触发更新,也没有写任何东西,但我相信 ACME 脚本每 3 个月左右将其作为 cron-jobs 处理,允许您的应用程序在它们运行时自动验证。不过我自己还没有实现。
我还要求您真正考虑使用 CloudFlare 或其他一些 SSL 终止服务,因为这也为您提供了许多其他好处,例如 DDoS 保护、一些 CDN 功能等。
【讨论】:
如前所述,您应该考虑 CloudFlare 或 SSL-offload via nginx 等方面的最佳整体解决方案。
但是,您可以为此使用greenlock-express.js 在Sails 节点环境中直接使用LetsEncrypt 实现SSL。
下面的例子:
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,
},
};
有关微调配置的详细信息,请参阅 greenlock 文档,但以上内容是开箱即用的 LetsEncrypt 与 Sails 一起使用。
另请注意,您可能希望将此配置放置在适当的位置,例如 config/env/production.js。
【讨论】: