本地可以生成SSL证书,为什么还要购买?

S-K*_*-K' 59 ssl https ssl-certificate

当我们可以使用 openSSL 在本地生成 SSL 证书时,我无法理解为什么需要购买 SSL 证书。我购买的证书和我在本地生成的测试证书有什么区别?这只是一个大骗局吗?

Mar*_*son 72

一个字——信任。来自您的浏览器信任的提供商的 SSL 证书意味着他们至少已经完成了基本验证,以表明您就是您所说的人。

否则,我可以为 google.com 或 yourbank.com 制作自己的证书并假装成他们。

付费证书不提供比自签名(通常)任何额外级别的加密。但是自签名证书会导致浏览器抛出错误。

是的,SSL 的一部分是骗局(verisign 证书与 geotrust,其中 verisign 的价格高出 100 倍),但不是全部。

如果这都是内部的东西,那么就不需要付费证书,因为您可以使用自己的信任方法(例如,什么都不做,或者只是指纹检查)。

  • 如果这都是内部内容,您可以使用组策略将证书部署为受信任的。 (8认同)
  • 另一方面,司机签名有点像骗局。对于它是什么,是的,这是一个巨大的剽窃,但我们别无选择。http://successfulsoftware.net/2008/02/27/the-great-digital-certificate-ripoff/ (2认同)
  • @Matt - 我以前读过那篇文章;当我们考虑在工作中进行代码签名时。我们决定自行签名并建议人们检查签名。谢天谢地,我们有非常高科技的用户(主要是)。 (2认同)

Man*_*rth 23

SSL 证书的全部意义在于,浏览器对用于 HTTPS 交易的服务器公钥具有合理程度的信任。

首先,让我们探讨一下如果不使用证书会发生什么。相反,服务器将以明文形式发送公钥,浏览器将使用它启动加密通信(它会做的第一件事是加密自己的公钥并安全地发送出去)。如果我和攻击者将自己夹在中间怎么办?我可以随时用我的公钥替换你的公钥,与浏览器建立加密连接,解密我收到的所有内容,用你的公钥加密,然后发送它(反之亦然,用于响应类型的流量)。没有一方会注意到差异,因为没有人事先知道公钥。

好的,所以我们已经确定我们需要某种方式让浏览器信任我的公钥。一种方法是将所有注册的公钥存储在浏览器中。当然,每次有人注册公钥时,这都需要更新,这会导致膨胀。也可以将公钥保存在 DNS 服务器1的手中,但 DNS 服务器也可能被欺骗,而且 DNS 不是一种安全协议。

所以剩下的唯一选择是通过签名机制“链接”信任。浏览器存储了几个 CA 的详细信息,您的证书将与一系列其他证书一起发送,每个证书都会对下一个证书进行签名,并上升到根/受信任/内置 CA。CA 的工作是在为您签署证书之前确保域属于您。

由于成为 CA 是一项业务,因此他们为此收费。有些比其他的多。


如果您制作了自己的证书,则会收到类似于以下内容的错误:

在此处输入链接描述

未签名的证书没有任何价值。这就像拿一支铅笔和一本小册子,画一本声称你是巴拉克奥巴马的护照。没有人会相信它。

1. 毕竟,您的 DNS 条目是在您注册域时创建的。使用更强大的协议让您同时注册公钥将是一个有趣的概念。


msc*_*k74 5

您的问题的答案取决于您的受众:由于整个证书系统基于“信任”,您的用户必须有能力自己证明您的证书或信任已经完成此检查并通过签名显示成功的第三方你的证书。我使用的“证明您的证书”一词有点不准确:长版本应该是:“证明您是证书的所有者并被允许使用它”。

如果您的所有用户都认识您,并且具有证明您的证书是您自己颁发的技术能力,则没有技术需要使用来自“认证”提供商的证书。在这种情况下,自签名证书甚至可能比来自其中一个提供商的证书更好。

但在大多数情况下,用户不可能自己完成这个过程。在这里,这些 SSL 提供商进入市场。他们提供进行这些检查的服务,并通过签署证书来表达检查结果。但要记住的一个重要事实是:通过签署证书,SSL 提供商表示它已根据自己的签名策略检查了证书颁发者的身份。因此,用户必须决定此策略是否足够精确以及他/她是否可以信任提供者。