1-取消注释本地.js中的SSL证书路径或在config/env/production.js中添加SSL证书路径。
module.exports = {
ssl: {
ca: require('fs').readFileSync(__dirname + '/ssl/ca.crt'),
key: require('fs').readFileSync(__dirname + '/ssl/key.key'),
cert: require('fs').readFileSync(__dirname + '/ssl/cert.crt')
},
port: 443
}
2-在 config/env/production.js 中添加一个策略(policies)部分
module.exports = {
ssl: {
ca: require('fs').readFileSync(__dirname + '/ssl/ca.crt'),
key: require('fs').readFileSync(__dirname + '/ssl/key.key'),
cert: require('fs').readFileSync(__dirname + '/ssl/cert.crt')
},
port: 443,
policies: {
'*': 'isHTTPS'
}
}
3-在您的api/policies文件夹中创建一个isHTTPS.js策略。该策略将把HTTP请求重定向到HTTPS。
module.exports = function(req, res, next) {
if (req.secure) {
next();
} else {
res.redirect('https://' + req.headers.host + req.url);
}
};
4-接下来,我们需要编辑config/bootstrap.js文件,并在环境为生产环境时监听端口80,以便将请求重定向到443端口即SSL。
var http = require( 'http' );
module.exports.bootstrap = function(cb) {
if(sails.config.environment === "production") {
http.createServer( sails.hooks.http.app ).listen( 80 );
}
cb();
}