我已经购买了SSL证书(Geotrust chain,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)上运行得非常好(即使没有证书中的ca属性),但在我的生产环境(Arch Linux)中根本没有。 (我在我的HOSTS文件中设置了一个重定向,所以我得到了一个完整的挂锁)
NodeJS版本是无关紧要的,我已经测试了一个非常旧的版本,它在开发计算机上工作。 OpenSSL是最新的(1.0.0g)。
我对这个问题感到困惑。 Firefox报告“ssl_error_rx_record_too_long”,Chrome只是声明“ERR_SSL_PROTOCOL_ERROR”,其他浏览器的描述性更差。
答案 0 :(得分:2)
因为事实证明端口转发没有正确设置(在网络设置时不要相信你的朋友的话)。