sailsjs框架是否有任何节点模块可以让我们使用加密来制作ssl证书?
答案 0 :(得分:0)
有一个中间件可以启用http-> https重定向,还可以处理来自Let's Encrypt的ACME验证请求。据我所知,它实际上不会触发更新,也不会编写任何内容,但是我相信ACME脚本每3个月左右将其作为cron-jobs处理一次,从而使您的应用程序可以在运行时自动进行验证。我自己还没有实现。
我还请您考虑使用CloudFlare或其他一些SSL终止服务,因为这还会为您带来许多其他好处,例如DDoS保护,某些CDN功能等。
答案 1 :(得分:0)
如前所述,您应该考虑使用CloudFlare或通过nginx等进行SSL卸载方面的最佳整体解决方案。
但是,您可以使用greenlock-express.js直接在LetsEncrypt节点环境中通过Sails实现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
之类的地方。