当前位置:  开发笔记 > 编程语言 > 正文

自签名SSL证书或CA?

如何解决《自签名SSL证书或CA?》经验,为你挑选了4个好方法。

我想加密我的网站的身份验证和注册部分(显而易见的原因).这个网站是目前和旧网站,我和一些朋友在中学开始使用,今天仍在使用.我可能会或可能不会在不久的将来将其注册为非营利组织,但不管怎样,CA都要花钱而组织没有,我们现在是大学生.

Verisign是不合理的,GoDaddy每年30美元.GoDaddy并不是太不合理,我认为他们的证书被大多数网络浏览器所接受.GoDaddy的问题是我不知道为什么他们有不同的SSL产品(即:为什么不验证我这么便宜?这对证书有什么影响以及如果它只包含一个域名,浏览器如何处理它?)

另外,使用我自己的证书是否存在问题?登录页面是否可以是http,并且有一行说明我使用的是自签名证书,这是指纹,然后将表单发布到https页面?Safari的方法不是太糟糕或听起来太吓人了.但是,我担心firefox 3的方法会吓跑人们,并给我一大堆电子邮件,说我的网站被黑客攻击或其他什么.我不知道IE如何响应自签名证书.(还有一个问题是为什么付出我可以毫不费力地创造自己的东西,但我不打算构成它的哲学部分,这是一个更实际的问题.)

总而言之,我是否每年给GoDaddy 30美元,或者我只是告诉人们一小段我在做什么,并给那些真正想要我指纹的人?

编辑:有些人在我正在阅读的论坛上提到更多信息,提到GoDaddy证书仅在GoDaddy服务器上提供,但事实并非如此.两件事:(1)这是真的吗?并且还有其他CA的价格大致相同,因此论证应该仍然相同.



1> Clint Harris..:

有一种常见的误解,即自签名证书本身就不如GoDaddy和Verisign等商业CA销售的证书那么安全,如果你使用它们,你必须忍受浏览器警告/例外; 这是不正确的.

如果您安全地分发自签名证书(或CA证书,如bobince建议的那样)并将其安装在将使用您的站点的浏览器中,它就像购买的那个一样安全,并且不容易受到中间人的攻击攻击和证书伪造.显然,这意味着只有少数人需要安全访问您的网站(例如,内部应用程序,个人博客等)才有可能.

为了提高认识并鼓励像我这样的小型博主来保护自己,我写了一个入门级教程,解释证书背后的概念以及如何安全地创建和使用自己的自签名证书(完整与代码示例和截图)这里.


问题是:不可能通过WAN安全地分发自签名证书,人们需要通过CD-ROM或甚至通过安全邮件发送的USB-stick分发它们.因此,最终自签名证书总是比正式签名的证书更不安全,因此无法确定客户端或其ISP(例如,受病毒感染的客户端).

2> Nicholas Pia..:

SSL证书解决了两个目的:流量加密(至少用于RSA密钥交换)和信任验证.如您所知,您可以使用(或不使用SSL 3.0或TLS)任何自签名证书来加密流量.但信任是通过一系列证书完成的.我不认识你,但我确实信任verisign(或者至少微软确实如此,因为他们已经支付了很多钱来默认安装在他们的操作系统中),而且由于Verisign相信你,所以我相信你太.因此,当我在Web浏览器中访问这样的SSL页面时,没有可怕的警告,因为我信任的人说你就是你自己.

通常,证书越昂贵,颁发证书颁发机构的调查就越多.因此,对于扩展验证证书,请求者必须提交更多文档以证明他们是他们所说的人,并且作为回报,他们在现代Web浏览器中获得了一个明亮,快乐的绿色栏(我认为Safari不做任何事情它还没有).

最后,有些公司和Verisign这样的大公司一起仅仅依靠品牌名称; 他们知道他们的顾客至少听说过Verisign,所以对于在网上商店购物的人来说,他们的封印看起来比GoDaddy的封面要少一些.

如果品牌对您不重要或者您的网站不容易受到网络钓鱼攻击,那么默认情况下,您可以购买的最便宜的SSL证书,其根目录安装在大多数Web浏览器中都可以.通常,唯一的验证是您必须能够回复发送给DNS管理联系人的电子邮件,从而"证明"您"拥有"该域名.

当然,您可以在非GoDaddy服务器上使用那些廉价证书,但您可能必须先在服务器上安装中间证书.这是一张介于您的廉价30美元证书和GoDaddy"真实交易"根证书之间的证书.访问您网站的网络浏览器就像"嗯,看起来这是用中间人签名的,你知道吗?" 这要求 可能需要额外的旅行.但是它会从您的服务器请求中间件,看到它链接到它知道的受信任的根证书,并且没有问题.

但是,如果您不允许在服务器上安装中间件(例如在共享主机方案中),那么您就不走运了.这就是大多数人说GoDaddy证书不能用于非GoDaddy服务器的原因.不是这样,但对于许多场景来说都是如此.

(在工作中,我们为我们的在线商店使用Comodo证书,并使用廉价的30美元GoDaddy证书来保护与数据库的内部连接.)

用斜体字编辑,以反映埃里克森在下面的深刻见解.每天学些新东西!


中级证书不涉及到服务器的额外往返.必须将服务器配置为将中间实体和最终实体证书一起正确发送.任何体面的Web服务器的SSL配置都接受证书链,而不仅仅是单个证书.
SSL本身而不是服务器证书提供流量加密.使用Diffie-Hellman密钥协议,您可以拥有一个没有任何证书的机密SSL通道.但如果你甚至不知道你在跟谁说话,你能否考虑一下你告诉他们的秘密?

3> erickson..:

从Let's Encrypt获得证书,这是一个新的十年免费CA,受到浏览器的广泛支持.

我还没有尝试过,但在回答类似问题时提到了StartCom.显然你可以免费获得一年的证书,它被Firefox 3接受.

即使您需要付费,我也建议使用CA而不是自签名证书.有些人不会看到您的解释,假网站可能会像您提议的那样发布自己的假证书指纹.我怀疑普通用户知道证书指纹是什么或如何检查它.



4> bobince..:

创建自签名CA,而不是创建自签名证书,并使用该证书签署您的HTTPS证书.要求用户安装CA而不是单个服务器证书更容易,并且您可以创建新证书(例如,针对子域,或更新过期的证书),而无需用户再次安装服务器证书.

然后,您可以决定是否值得花30美元从您自己的CA签署的证书切换到由GoDaddy或任何人签署的相同证书.

无论哪种方式,都没有将表单发布到HTTPS的HTTP页面.用户无法看到它在哪里; 他们必须查看来源以检查表格是否未被劫持指向其他地方并且没有人会这样做.您必须拥有一个带有CA链接的HTTP首页和一个指向HTTPS登录表单的单独链接.

要求用户安装带有通过普通HTTP下载的证书的CA有点顽皮:如果有一个中间人,他们可以动态替换你的CA并劫持随后的HTTPS连接.实际发生这种情况的可能性非常低,因为它必须是有针对性的攻击,而不是普通的自动嗅探,但实际上你应该在其他一些受HTTPS保护的服务上托管CA下载链接.

客户接受只是您可以回答的问题,知道您的用户是谁.当然Firefox界面太可怕了.如果像GoDaddy这样的CA现在降到30美元,那么我可能会选择它.它曾经很多,更糟糕.

假设对旧版和小众浏览器的支持不是问题,那就去找最便宜的CA吧.你应该付钱让CA正确地验证你是谁,但在实践中这不是它的工作方式而且从来没有,所以为更彻底的检查付出额外费用几乎没有任何东西.Verisign的敲诈价格仅靠企业惯性而存在.

CA可以通过拥有几百个私钥来获取资金.本应验证身份验证的内容已被转移到EV证书中.这更像是一个骗局.喜悦.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有