我已经购买了SSL证书(Geotrust链,RapidSSL),但似乎无法正确部署它。
var certs = {
key: fs.readFileSync('cert/private.key'),
ca: [fs.readFileSync('cert/intermediate1.crt'),
fs.readFileSync('cert/intermediate2.crt')],
cert: fs.readFileSync('cert/public.crt')
}
https.createServer(certs, router).listen(443);
此代码段在此笔记本电脑(Windows XP或Windows XP)上可以很好地工作(即使没有cert中的ca属性),但在我的生产环境(Arch Linux)中则完全没有。 (我在HOSTS文件中设置了重定向,因此我得到了一个完整的挂锁)
NodeJS版本无关紧要,我已经测试了一个很老的版本,并且可以在开发计算机上使用。 OpenSSL是最新的(1.0.0g)。
我对此问题感到困惑。 Firefox报告“ ssl_error_rx_record_too_long”,Chrome浏览器仅声明“ ERR_SSL_PROTOCOL_ERROR”,其他浏览器的描述性更差。
最佳答案
事实证明,端口转发设置不正确(在网络设置中不要相信您的朋友)。
关于node.js - Nodejs SSL错误,在Linux上具有有效的SSL证书,但在Windows上无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9555633/