【问题标题】:Can I find out if user's web browser has stored an exception for my self-signed ssl certificate?我能否查明用户的 Web 浏览器是否为我的自签名 ssl 证书存储了异常?
【发布时间】:2015-06-03 10:50:04
【问题描述】:

是否有可能找出,例如在 javascript 中,如果浏览器存储了自签名 ssl 证书的安全异常?

我想向用户提供一条消息,告诉他们在他们尝试导航到通过 https 提供的页面之前,他们会收到安全警告以及证书详细信息,但我只想将该消息提供给以下用户将收到安全警告,即没有为我的安全证书存储异常的用户。
(该网站是为一个新的非营利性非法人协会设立的,因此即使有预算也可能很难获得 CA 证书。)

【问题讨论】:

  • 您通常无法从浏览器中访问此类数据。如果您有域名,那么即使对于非营利的非法人协会来说,获得经过域验证的证书也不成问题。
  • 有些公司提供免费的有效SSL证书
  • 不要这样做。您可以获得免费或几乎免费的域验证证书。

标签: javascript security ssl browser https


【解决方案1】:

我想向用户提供一条消息,告诉他们在他们尝试导航到通过 https 提供的页面之前,他们会收到安全警告以及证书详细信息,但我只想将该消息提供给以下用户将收到安全警告,即没有为我的安全证书存储异常的用户。

我认为这是个坏主意。 如果您训练用户相信此类消息,那么中间人攻击者很容易只显示类似的警告,然后使用攻击者证书进行中间人 SSL 攻击。

(该网站是为一个新的非营利性非法人协会设立的,因此即使有预算也可能难以获得 CA 证书。)

首先,有一些免费的 SSL 证书(它们可能不会对证书收费,但会为吊销收费)。除此之外,如果您仅将其与服务器成本或几杯咖啡进行比较,那么简单的证书并不是那么昂贵。 如果你真的想保护你的用户,你不应该使用某种损坏的 HTTPS,而是正确地使用它。

是否有可能找出,例如在 javascript 中,如果浏览器存储了自签名 ssl 证书的安全异常?

虽然我认为显示这样的警告是一个坏主意,但可以在类似情况下使用以下技术,即向用户显示它需要更新其旧软件,因为它不能接受新的证书:

您可以尝试包含来自 https 保护端的资源,例如图像。如果资源的证书失败,现代浏览器(我用最近的 Chrome 和 Firefox 测试过)不会显示警告,而是静默加载失败。您可以使用 Javascript 检查资源是否已加载(用户有证书异常)或没有(无异常)。

【讨论】:

  • 这是一个很好的观点,即易于引诱一种虚假的安全感。我发现我可以从 certs4less 以 25 美元的价格从 RapidSSL 获得证书,尽管它似乎可能需要一些中间证书才能工作(RapidSSL 自己的网站在我的 iPhone 上不受信任)。非常感谢。 :)
猜你喜欢
  • 2019-04-18
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-19
  • 2021-01-05
  • 1970-01-01
相关资源
最近更新 更多