我在安卓浏览器上使用Expressjs-Nodejs和Https时遇到了问题。
- 我的VPS同时运行Apache和Nodejs第一次,我的团队为Apache设置了ssl,所有设备都运行良好——那一次Nodejs使用3000端口运行。由于某种原因,我为nodejs服务器使用了apache的SSL,并为apache关闭了它(现在apache在端口80上运行)
- 我用这个代码来获取CA。它几乎适用于浏览器和IOS(Safari),但它不能在Android的Chrome上运行,现在它总是显示关于我的证书的警告消息,并阻止https(带红线)在nodejs服务上运行,尽管用户可以正常访问页面这是我从apache获取CA的代码:服务器端:
var app = express(),
options = {
key : fs.readFileSync('/etc/apache2/ssl/thedragoncode.key').toString(),
cert: fs.readFileSync('/etc/apache2/ssl/thedragoncode.crt').toString(),
requestCert: true,
rejectUnauthorized: false
},
https = require('https').createServer(options, app);
...
// This request use for mobile Android device
app.get("/android/", function (req, res, next)
{
res.end("android development");
});
https.listen(443);
似乎没有人遇到这个问题。我已经通过这样做解决了这个问题:http://www.benjiegillam.com/2012/06/node-dot-js-ssl-certificate-chain/
你只需将coffe脚本转换为javascript,它对我来说很好。通过将CA链提取到数组