那我为什么不相信你?因为不能保证证书上的名字(“Discount Bob's Hanggliding and BBQ Emporium”)就是实际创建证书的人。我可以创建一个证书,上面写着“折扣 Bob's Hanggliding and BBQ Emporium”,当您访问 ritter.vg 时,它会显示“折扣 Bob's Hanggliding and BBQ Emporium”。
但是当我要求 CA 签署我的证书时,上面写着“折扣 Bob 的 Hanggliding 和 BBQ Emporium”,他们会问“当然,给我一些凭据”,而我没有,所以他们会告诉我生气. 但实际的折扣 Bob 将拥有这些凭据,CA 将对其进行签名。因此,当您看到由 CA 签名的证书时,您会知道它实际上是折扣 Bob,因为如果不是 CA 就不会签署它。
加密不是证书的属性或签名的来源。您从 CA 签名证书中获得的好处是它会自动被 Web 浏览器(和其他 SSL 感知应用程序)信任。自签名证书会弹出该证书不受信任的警告。在较新的浏览器中,例如 FireFox 3,默认操作是拒绝显示页面,用户必须采取慎重的操作来启用自签名(或过期)证书的使用。
如果您可以与将使用该网页的每个人交谈(例如,如果这仅适用于您的家人),那么这不是问题。告诉他们期待这个警告以及如何在他们的浏览器中处理它,这是一个一次性的问题。
但是,如果这是用于需要任何接近真正安全性的任何用途,您可能需要一个真实的、签名的、非自签名的证书。
您可以获得相同的加密优势,但查看您网站的每个人都会收到警告,指出您的证书不受信任(或来自不受信任的来源)。获得主流证书之一的好处是它们已经在浏览器中作为受信任的。
在 IE 7 中,转到工具、Internet 选项、内容、证书、受信任的根证书颁发机构。这些都是 IE 默认信任的所有权限。
相信。自签名证书提供相同的加密。
但我相信CA。我不相信你。
那我为什么不相信你?因为不能保证证书上的名字(“Discount Bob's Hanggliding and BBQ Emporium”)就是实际创建证书的人。我可以创建一个证书,上面写着“折扣 Bob's Hanggliding and BBQ Emporium”,当您访问 ritter.vg 时,它会显示“折扣 Bob's Hanggliding and BBQ Emporium”。
但是当我要求 CA 签署我的证书时,上面写着“折扣 Bob 的 Hanggliding 和 BBQ Emporium”,他们会问“当然,给我一些凭据”,而我没有,所以他们会告诉我生气. 但实际的折扣 Bob 将拥有这些凭据,CA 将对其进行签名。因此,当您看到由 CA 签名的证书时,您会知道它实际上是折扣 Bob,因为如果不是 CA 就不会签署它。
签名证书的目的是验证此人是否确实是他所说的那个人。因为 CA 说他是,我信任 CA。
加密与证书没有直接关系——它只是被添加进去,因为它很好,而且它齐头并进。
自签名证书的优点:
缺点:
快速场景:如果有人在网吧中设置了一个流氓 wifi 接入点,则可以透明地代理受害者用户的活动并在网络嗅探器中观察它。通常,SSL 是加密的,数据不可用。但是,存在代理用户的 HTTPS 请求并检查受害者在传输中的内容的工具。这会产生一个副作用,即为受影响的用户提供通常不受信任的非真实证书。
如果您登录银行网站并收到 SSL 安全警告,请不要继续。你可能是一个目标。
有些人可能会认为这是Hak5 Pineapple。
由于您专门询问自签名证书的好处,我想“好处”将是它便宜(即免费)并且初始设置更快。这些显然远远超过了所有网站访问者必须在浏览器的安全策略中添加例外以允许他们查看您的网站的负面影响。
如果您还没有听过它们,您可能会发现一些过去的Security Now Podcast感兴趣 - SSL 在许多集中进行了详细讨论。
您将加密与身份验证混淆了。
任何证书都将提供加密。
CA 证书还证明 CA 保证您就是您所说的那个人。
自签名证书提供加密但不提供身份验证。
主要好处是您无需访问第三方来处理您网站的安全性。你可以自己做。问题是正确的方法很复杂。
他们的浏览器需要“信任”自签名证书。如果您以后更改证书,应该会出现相同的对话框。一些答案解释了如何做到这一点。这仍然很糟糕,因为用户在接受自签名证书的培训时更容易受到攻击,例如中间人。我见过将这是标准程序的公司!对这些用户来说太糟糕了!
理想情况下,在尝试访问您的站点之前,您将有一个在他们的盒子上安装自定义根证书的过程。然后,此根证书将颁发您站点的证书。这样,他们的浏览器会在第一次连接到您的站点之前信任您的自签名证书,而不会显示信任错误。