在端口443(https)上运行Nodejs(expressjs)的Android上使用Chrome时,获取通知警告证书



我在安卓浏览器上使用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链提取到数组

最新更新