自签名证书不能通过 Internet 工作?

信息安全 tls 证书 iis 互联网
2021-09-05 14:48:51

我的自签名证书无法通过 Internet 工作。可能会出现什么问题?

以下是设置详细信息:

  1. 我在 Azure 中有一个带有 IIS 的 Windows 虚拟机,以及一个用于 HTTPS 的自签名证书。一切正常。网站正在打开,没有任何问题。注意:我也设置了域,以便我可以通过 Internet 访问此信息。

  2. 当我尝试从我的个人笔记本电脑访问基于 HTTPS 的网站时,我收到一条错误消息:This connection is not trusted.

如果浏览器出现上述错误,我必须接受设置以非安全模式浏览网站,然后才能访问数据。但这不是我想要的。

我只想以安全模式访问数据。

这怎么可能使用自签名证书?

4个回答

即使您看到一条消息说该连接不受信任并不意味着它不是 HTTPS 连接

为了显示或不显示此类错误消息,浏览器尝试使用以下标准验证证书:

  • 证书公用名是否与 URL 栏中输入的域名匹配?
  • 当前日期是否介于有效期开始日期和有效期结束日期之间?
  • 证书是否由知名的证书颁发机构 (CA) 签署?(这是自签名证书所没有的)
  • 证书是否已被吊销?(我不确定所有浏览器都验证这一点)

还有其他机制,但让我们暂时忘记它们。

在您的情况下,如果您想避免此错误消息(这并不意味着您不使用 HTTPS 浏览您的网站),您可以:

  • 记住你对 Firefox 的选择(你不应该再次被警告)
  • 用您自己的 CA 签署您的证书,并在 Windows 和 Firefox 中安装您的 CA(这里有一篇相当不错的文章但由于使用 SHA1 签名而不是 SHA2,所以它不是最新的)
  • 获取由知名 CA 签名的有效证书(例如免费的StartSSL )

您收到的错误消息是浏览器在处理自签名证书时的正常行为,因为您的自签名证书无法说明数据的接收者(您的服务器)的真实身份(信任),所以您收到该消息询问您是否您确定您信任您的网站(服务器)。无论如何,鉴于任何攻击者都可以创建自签名证书并发起中间人攻击,因此您的浏览器无法验证您是否连接到(正确/真实)服务器。

要解决您的问题,请根据您用于访问网站的浏览器添加连接规则例外。

一种可能的解决方案是将您的自签名证书作为受信任的根 CA 安装在您的笔记本电脑上。

见,https://technet.microsoft.com/en-us/library/cc754841.aspx#BKMK_addlocal

这将解决您所描述的问题(仅在该笔记本电脑上,并且仅适用于使用操作系统信任的根的浏览器/其他软件,即 Firefox 仍将显示警告,因为它使用自己的受信任的根 CA)。

但是,这在生产中不起作用。您的每一位访问者都必须将您的自签名证书添加为受信任的根 CA,以绕过浏览器的警告。这样做会带来严重的安全风险。

Https 是通过 TLS/SSL 的 http。TLS 提供了三件事:

  1. 数据加密
  2. 服务器身份验证(服务器就是他们所说的)
  3. 客户端身份验证(客户端就是他们所说的那个人)

要实现 1) 自签名证书就足够了,但对于 2) 您需要一个由客户端(您的浏览器)已知的证书颁发机构签名的证书。不幸的是,所有当前的浏览器对于 https 总是需要 1)2),因此不接受自签名证书(至少在没有给出可怕警告并让用户跳过箍来查看页面的情况下并非如此),即使在许多情况下只是1)可能就足够了。

如果该站点只能由您或您控制的一小群人访问,您可以在每个浏览器中安装您的自签名证书作为受信任的根证书。基本上,您将成为自己的证书颁发机构。

如果陌生人将访问此站点,您别无选择,只能让知名证书颁发机构签署您的证书。幸运的是,有证书颁发机构可以免费执行此操作,例如StartSSL

请注意,有一种“机会加密”的趋势,这将解决这个问题,并允许https 使用自签名证书。不过,如果这种情况发生的话,还需要一段时间才能支持这一点。Firefox实现了它,但后来由于安全问题禁用了它。如果您对详细信息感兴趣,另请参阅Security Now 播客的第 502 集。