我在使用 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 链到数组