如何用.crt文件在sails.js中configurationhttps
我正在nodeJS上运行sailsJS,并试图设置HTTPS,但我似乎被卡住了。 我可以在http://example.com:443访问我的网站,但不能访问https://example.com
这个问题类似于如何在sails.js中configurationhttps,除了我没有.pem文件,而是从Media Temple的QuickSSL获得的.crt和.key文件。
这是我在config / bootstrap.js
module.exports.bootstrap = function (cb) { var fs = require('fs'); sails.config.express.serverOptions = { key: fs.readFileSync('/etc/ssl/private/mysite.com.key'), cert: fs.readFileSync('/etc/ssl/crt/mysite.com.crt'), ca: [fs.readFileSync('/etc/ssl/crt/mysite.com-geotrust.crt')] }; cb(); };
我在config / local.js中将端口号设置为443
任何人都可以指向正确的方向吗?
我已经经历过,你用来configurationexpress的语法不适用于新版本的sails,所以我更新了它,它与自签名证书一起工作。 我将代码移到了local.config文件中,因为它确实是一个环境设置…我没有尝试过的一件事就是证书颁发机构。
这是我的config.local文件的样子:
var fs = require('fs'); module.exports = { express: { serverOptions : { key: fs.readFileSync('ssl/mysite.key'), cert: fs.readFileSync('ssl/mysite.com.crt') } }, port: process.env.PORT || 443, environment: process.env.NODE_ENV || 'development' };
如果这不起作用,你可能想看看几件事情:
- 如果你在443端口上运行,你需要调用“sudo sails lift”
- 文件path必须是有效的(在我的情况下ssl目录是在项目的根目录)
- 文件权限必须对文件可读(在你的例子中“etc”通常只能由root用户读/可执行)
sailsJS中的SSL官方文档仍在工作,但是我在部署页面上find了这个文档。 在你的config / local.js中
module.exports.port = 80; module.exports.environment = 'production'; module.exports.ssl = { cert: 'path/to/cert', key: 'path/to/key' };
快递和帆船改变了很多。 所以你应该尝试更新的例子。 我找不到很多这方面的例子。
只是添加一些configuration选项,以他人已经提到的我想补充一点,你可以指定密码使用像这样(在那些不应该使用!
):
express: { serverOptions : { key: fs.readFileSync('ssl/key.pem'), cert: fs.readFileSync('ssl/cert.pem'), ciphers: "DHE-DSS-AES256-GCM-SHA384:DHE-DSS-AES256-SHA:AES256-GCM-SHA384:DHE-DSS-AES128-SHA:DHE-DSS-AES128-SHA256:AES256-SHA256:AES128-GCM-SHA256:!AES256-SHA", honorCipherOrder: true // this is necessary to make the ciphers order matter } }
您还可以传递其他在节点的tls文档页面上说明的选项: http : //nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener 。
我还发现使用密码:“HIGH:!aNULL:!MD5:!3DES”,将制造商更好的结果,尝试通过检查
作为从0.9到0.10的更新,现在应该有local.js文件
ssl : { key: fs.readFileSync('server.key'), cert: fs.readFileSync('server.crt') }
代替
express : { serverOptions : { key: fs.readFileSync('ssl/server.key'), cert: fs.readFileSync('ssl/server.crt') } };
- 我可以使用Node-Webkit(NW.js)的游戏手柄吗?
- 如何构build模块更贴近/坚持Node.js理念
- 是否有JavaScript的静态调用图和/或控制stream图API?
- Node.js – 超出最大调用堆栈大小,即使使用process.nextTick()
- 将消息从PHP发送到Node.js
- python(pycrypto)和nodejs(crypto)之间不匹配的encryption(aes-128-cbc)
- nodemailer nodejs:sendmail退出127
- Socket.io断开相closures包的事件和垃圾回收
- NodeJS / ExpressJS:代理HTTPvideostream(来自VLC)