【问题标题】:Avoid adding exception on website if ca-certificate is not installed如果未安装 ca-certificate,请避免在网站上添加异常
【发布时间】:2020-06-06 17:15:24
【问题描述】:

我已经用 openssl 创建了我自己的 ca 证书。我有四个文件:

  • ca.key(私钥)
  • ca.crt(公共 ca 证书)
  • server.key(私钥)
  • server.crt(由 ca 文件签名的公共证书)

我使用带有 ssl 配置的 nginx。

ssl_certificate server.crt;
ssl_certificate_key server.key;

如果我在我的电脑上安装了 ca 公用证书,我的浏览器可以让我在不添加异常的情况下访问网站,这很好。但是如果我的电脑上没有安装ca证书,我必须添加例外才能通过。我想避免添加异常并强制用户在他们的计算机上安装 ca 证书。

我用 hsts 配置 nginx(http 严格传输安全):

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate ca.crt;

不幸的是,我再次有可能添加例外以通过。
我想知道是否可以这样做?

【问题讨论】:

  • 您的服务器无法强制用户信任它,否则诈骗者会使用相同的伎俩。您可以使用用户浏览器已经信任的 CA(例如 Lets Encrypt)或要求用户安装您的自签名 CA。
  • 我已经在使用 Let's Encrypt 但我想尝试使用自定义证书。

标签: ssl nginx openssl


【解决方案1】:

我意识到我的证书不适用于 chrome missing_subjectAltName。所以我用这个link 修复了它。如果我的计算机上没有安装我的 ca 证书,现在我会收到带有 chrome 的这条消息:

您现在无法访问 localhost,因为该网站使用 HSTS。网络错误和攻击通常是暂时的,所以这个页面可能会在以后工作。

这正是我想要的。但是它在 firefox 上不起作用,让我可以添加异常。

为什么 chrome 会阻止它而不是 firefox ?我怎么在 Firefox 上也能做到这一点?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2015-02-18
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    相关资源
    最近更新 更多