自签名SSL证书或CA?

时间:2008-11-15 16:31:46

标签: ssl self-signed ca

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

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

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

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

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

9 个答案:

答案 0 :(得分:52)

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

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

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

答案 1 :(得分:35)

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

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

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

如果品牌对您不重要,或者您的网站不容易遭受网上诱骗攻击,那么您可以购买的最便宜的SSL证书,默认情况下在大多数Web浏览器中安装了root用户都可以。通常,唯一的验证是您必须能够回复发送给DNS管理联系人的电子邮件,从而“证明”您“拥有”该域名。

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

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

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

用斜体编辑以反映erickson在下面的深刻见解。每天都学到新的东西!

答案 2 :(得分:8)

在这个新的十年中从Let's Encrypt,获得免费CA的证书,这得到了浏览器的广泛支持。

我还没有尝试过,但在StartCom中提到了response to a similar question。显然你可以免费获得一年的证书,并且它被Firefox 3接受。

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

答案 3 :(得分:7)

创建自签名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证书中。这更像是一个骗局。喜悦。

答案 4 :(得分:3)

自签名证书are insecure。对真的。 “至少它是加密的”根本没有帮助。来自文章:

  

世界级加密*零认证=零安全

如果您的网站适合您和您的一些朋友,那么您可以创建自己的CA并将您的证书分发给朋友。

否则要么从已知的CA(for free)获取证书,要么根本不打扰自签名证书,因为你得到的只是 false 安全感


为什么加密流量不安全?你总是允许另一端解密你的流量(你必须,否则你会发送乱码)。

如果您没有检查另一端的用户,则允许任何人解密您的流量。如果您安全地或不安全地向攻击者发送数据,则没有任何区别 - 无论如何攻击者获取数据。

我不是在谈论检查是否paypal.com属于值得信赖的金融机构(这是一个更大的问题)。我正在谈论检查你是否要将数据发送到 paypal.com,或者只是发送到发送证书的拐角处的面包车说“是的,我完全喜欢paypal.com,你知道这是真的!“

答案 5 :(得分:2)

我昨晚终于崩溃并将我的服务器从自签名转换为GoDaddy证书,这并不是什么大不了的事,除了他们的流程不尽可能清晰。 30美元/年是合理的成本,在非GoDaddy服务器上使用证书不是问题。

如果您要向公众谈论SSL,请获取由真实CA签署的真实证书。即使你正在为最低工资工作,你也可以节省超过30美元/年的浪费时间来处理用户的恐惧或不信任,甚至在考虑任何可能的收入损失之前,由于他们被吓跑了你的网站。

答案 6 :(得分:2)

要回答有关Internet Explorer的问题,它会警告用户任何其证书未由IE已知(不幸称为“受信任”)CA签名的站点。这包括您自己的CA和自签名证书。如果证书中的域不是正在访问的域,它也会发出警告。

如果这是一个私人网站,只要您获得链接级加密,您可能就不在乎(并且您是否害怕有人嗅探您的流量?)。如果存在公共访问权限并且您需要SSL,则可以从其他人已经建议的情况下从已识别的CA获取签名证书。

答案 7 :(得分:1)

如果拐角处的货车已经能够劫持您的互联网连接,那么您遇到的问题比自签名证书更糟糕。

银行应使用客户端证书进行身份验证。这将使该面包车无法做任何事情......因为它没有银行私钥。

自签名证书非常好......假设您的互联网连接没有受到损害。如果您的连接已经受到了损害......无论如何,您可能已经陷入困境。

答案 8 :(得分:0)

GoDaddy通过本网站上的“立即购买”链接以每年15美元的价格提供SSL证书。不要使用优惠券代码,因为那时价格会回到每年30美元并从那里获得折扣。

http://www.sslshopper.com/ssl-certificate-comparison.html?ids=17,25,34,37,62