我在使用 Expressjs - Android Chrome 上带 Https 的 Nodejs 时遇到问题。

  • 我的 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 链到数组


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!