【问题标题】:Not able to secure website on Firefox even after installing SSL certificate即使安装 SSL 证书也无法在 Firefox 上保护网站
【发布时间】:2019-01-24 08:48:09
【问题描述】:

我正在使用以下代码在我的网站上安装 SSL 证书:

const express = require('express');
const path = require('path');
const app = express();
const fs= require('fs');
let privateKey = fs.readFileSync('certificate/x.key', 'utf8');
let ca = fs.readFileSync('certificate/x.crt', 'utf8');
let certificate = fs.readFileSync('certificate/x.crt', 'utf8');
let credentials = { key: privateKey, cert: certificate, ca: ca };
const http = require('http');
const https = require('https');

app.use(express.static(path.join(__dirname, 'build')));

app.get('/*', function(req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

let httpsServer = https.createServer(credentials, app);

httpsServer.listen(443);

这是一个 react 应用,我通过 Node.js 提供服务。

当我在 Chrome 或 Microsoft Edge 上打开网站时,它显示连接是安全、加密和有效的,但当我在 Firefox 上打开它时,它显示连接不安全。

可能是什么问题?

【问题讨论】:

  • Firefox 是否读取了正确的证书?你也清除缓存并检查了吗?
  • 我应该如何验证它正在读取正确的证书?它虽然在 chrome 和 Edge 中工作。是的,我清除了缓存,问题仍然存在
  • 只需点击高级,导航到站点并检查站点加载了什么证书。
  • 错误代码是:SEC_ERROR_UNKNOWN_ISSUER,当我点击它时,它显示了一个我没有传递到代码中的证书。
  • 嗯,很有趣。证书的颁发者是谁?

标签: node.js firefox amazon-ec2 ssl-certificate


【解决方案1】:

如果您的中间证书包含多个块,那么您应该将它们拆分为不同的文件,并将它们作为 ca 参数中的数组一个接一个地发送,如下所示:

let credentials = { key: privateKey, cert: certificate, ca: [
    fs.readFileSync('certificate/x_1.pem', 'utf8'),
    fs.readFileSync('certificate/x_2.pem', 'utf8'),
    fs.readFileSync('certificate/x_3.pem', 'utf8'),
    [...]
] };

【讨论】:

    【解决方案2】:

    如果您的证书在其他浏览器上看起来正确并且根本没有出现在 Firefox 中,原因几乎可以肯定,Firefox 仍然显示缓存的证书。

    只需清除 Firefox 的 SSL 状态,您就可以开始了:

    • 在“历史记录”菜单上,单击“清除最近的历史记录”。将出现“清除所有历史记录”对话框。
    • 在清除时间范围列表框中,选择所有。
    • 选中活动登录复选框。
    • 点击立即清除。

    来源: https://www.a2hosting.co.uk/kb/getting-started-guide/internet-and-networking/clearing-a-web-browsers-ssl-state#Mozilla-Firefox

    【讨论】:

    • 这不是历史问题。我清除,删除并重新安装了浏览器,但它仍然无法正常工作
    • 我认为 firefox 证书有时很难摆脱。尝试通过官方文档中描述的方式“刷新”您的安装:support.mozilla.org/en-US/kb/… 此外,使用 SSL 检查器,例如 sslshopper.com/ssl-checker.html 来测试您的证书。
    • SSL 检查器说什么?它是否显示正确的证书?如果您在另一台计算机上试用 Firefox,会发生什么情况?
    • 我在 mac 上尝试了 firefox 并且 HTTPS 工作正常,但是如果我在 windows 的 firfox 上尝试相同的操作,它会显示相同的错误
    【解决方案3】:

    我建议您输入您的站点地址here 并测试它是否存在问题。

    如果你看到,例如未提供完整链问题,您可以创建所有证书的完整链并将其 PEM 编码为单个证书文件,然后将其作为证书文件提供。你甚至可以在测试后直接下载这个完整的链。

    多次为我提供完整的链修复问题,在 chrome 中一切正常,但在其他情况下却不行。

    【讨论】:

    • 我的总体评分是 A。并且受到 Mozilla、Apple、Android、Java 和 Windows 的信任
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2017-05-23
    • 2014-03-28
    相关资源
    最近更新 更多