【问题标题】:Self-signed SSL Cert or CA? [closed]自签名 SSL 证书或 CA? [关闭]
【发布时间】:2008-11-15 16:31:46
【问题描述】:

我希望对我网站的身份验证和注册部分进行加密(原因很明显)。这个网站是目前和旧的网站,我和一些朋友从中学开始,至今仍在使用。在不久的将来,我可能会也可能不会将其注册为非营利组织,但无论哪种方式,CA 都需要花钱,而且该组织没有任何内容,而且我们目前是大学生。

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

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

总之,我是每年给 GoDaddy 30 美元,还是只用一小段话告诉人们我在做什么,然后给少数真正想要我指纹的人?

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

【问题讨论】:

    标签: ssl self-signed ca


    【解决方案1】:

    有一个普遍的误解,认为自签名证书本质上不如 GoDaddy 和 Verisign 等商业 CA 出售的证书安全,并且如果使用它们,您必须忍受浏览器警告/异常; 这是不正确的

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

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

    【讨论】:

    • 问题在于:不可能通过 WAN 安全地分发自签名证书,需要通过 CD-ROM 甚至通过安全邮件发送的 USB 记忆棒来分发它们。因此,最终自签名证书总是不如官方签名证书安全,因此无法确定客户端或其 ISP(例如感染了病毒的客户端)的情况。跨度>
    • 自我管理的 CA 怎么样?我想在这个问题的上下文中,自我管理的 CA 相当于自签名证书。
    • 是否建议为安卓应用使用自签名证书?例如,我有一台服务器为我的 android 应用程序提供我的 rest api,我可以使用自签名证书吗?
    • @specializt 每当向服务器发送请求时,服务器都会将证书发送给客户端,因此证书本身并不是真正的秘密。 Secret 是服务器拥有的私钥。 SSL 证书的目的是保护“数据流通道”,而不是限制对某些客户端的访问。如果我错了,请有人纠正我。
    • @webDeveloper 您完全错过了 SSL 和一般加密背后的整个概念,更不用说中间人攻击了。拦截 SSL 握手,将公共服务器证书交换为您自己的(也是自签名的),建立通信通道并读取解密的所有内容非常容易 - 攻击者可以轻松地自己建立到原始目的地的新连接,传递所有内容通过并成为一个沉默的观察者。这不适用于签名证书,因为在握手期间也会检查证书链。自签名证书不安全。
    【解决方案2】:

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

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

    最后,一些公司与威瑞信这样的大公司合作纯粹是为了品牌名称;他们知道他们的客户至少听说过 Verisign,因此对于在他们的在线商店购物的人来说,他们的印章看起来不像 GoDaddy 的那样简单。

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

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

    但是,如果不允许您在服务器上安装中间体(例如在共享主机场景中),那么您就不走运了。这就是为什么大多数人说 GoDaddy 证书不能在非 GoDaddy 服务器上使用的原因。不正确,但对于许多场景来说已经足够正确了。

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

    已编辑斜体,以反映埃里克森在下面的富有洞察力的澄清。每天学习新东西!

    【讨论】:

    • SSL 本身,而不是服务器证书,提供流量加密。使用 Diffie-Hellman 密钥协议,您可以拥有一个无需任何证书的机密 SSL 通道。但如果你甚至不知道你在和谁说话,你能不能把你告诉他们的东西当作一个秘密?
    • 中间证书不涉及到服务器的额外往返。必须将服务器配置为一起正确发送中间实体和最终实体证书。任何体面的 Web 服务器的 SSL 配置都接受证书链,而不仅仅是单个证书。
    • 品牌与漏洞无关 - 如果您使用检测证书更改(MitM-attack + SSL-spoofing)的浏览器并且不点击“是”,即使自签名证书也是安全的每次弹出一个窗口。但是让我们面对现实吧:自签名证书肯定是无能的标志,现在有免费证书可用,您只需要证明您拥有该域 - 即使这并不总是正确的,一些 CA 接受您拥有该域的事实名称服务器或网络服务器,甚至(!)
    【解决方案3】:

    Let's Encrypt, 获取证书,这是新十年的免费 CA,受到浏览器的广泛支持。

    我还没有尝试过,但是StartComresponse to a similar question 中被提及。显然你可以免费获得一年的证书,它被 Firefox 3 接受。

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

    【讨论】:

    • 我用过 Startcom,但由于它们不包含在 IE 信任列表中,它并不比使用您自己的自签名证书好多少...
    • 这是不真实的。 Startcom-certs 包含在 IE 中。
    • StartCom 已死。
    • @Kornel 没有死,但可能不再相关。
    【解决方案4】:

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

    然后您可以稍后决定是否值得花 30 美元从您自己的 CA 签名的证书切换到由 GoDaddy 或其他人签名的相同证书。

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

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

    客户接受度是只有您可以回答的问题,您知道您的用户是谁。火狐的界面当然是太吓人了。如果这些天像 GoDaddy 这样的 CA 降到 30 美元,我可能会选择它;它曾经是很多,更糟。

    假设对旧浏览器和小众浏览器的支持不是什么大问题,只需选择最便宜的 CA。您应该为让 CA 正确验证您的身份而付费,但实际上这不是它的工作方式,而且从未如此,因此为更彻底的检查支付额外费用几乎不会让您一无所获。威瑞信高昂的价格仅靠企业惯性生存。

    CA 会因为只拥有几百位私钥而无所事事而收钱。本应属于 CA 授权的身份验证内容已移至 EV 证书。这更像是一个骗局。喜悦。

    【讨论】:

      【解决方案5】:

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

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

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

      否则,要么从已知 CA (for free) 获得证书,要么根本不使用自签名证书,因为您得到的只是错误的安全感。


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

      如果您不检查对方是谁,那么您就是在允许任何人解密您的流量。您将数据安全地或不安全地发送给攻击者都没有区别— 攻击者无论如何都会得到数据。

      我不是在谈论检查是否例如paypal.com 属于值得信赖的金融机构(这是一个更大的问题)。我说的是检查您是向 the paypal.com 发送数据,还是只是向拐角处的一辆面包车发送一个证书,上面写着 “是的,我完全喜欢 paypal.com,我保证这是真的!”

      【讨论】:

      • 怎么样?与网络上的任何人都可以读取的普通 HTTP 相比,带有自签名证书的 SSL 遥遥领先。当然,这不是完全安全的,但你前门的锁也不是:)
      • 这似乎是一场宗教讨论——不管你说什么,一个不喜欢自签名证书的人永远不会承认使用它们的价值......
      • 自签名证书不能解决密钥分配问题。取决于你问谁,这就是为什么 PGP 没有被广泛使用的原因。也许我应该这样说,如果你有 SSL 证书签署方,那么你可以使用自签名证书。
      • 正如 Clint 在另一个回复中提到的那样,只有在您尝试访问 HTTPS 站点之前不分发自签名证书时,它们才是不安全的。如果用例仅涉及将证书分发给少数人(例如,您网站的 Web 管理界面),则分发自签名证书是可行的。如果您不知道需要将证书分发给谁(例如,面向客户的 HTTPS 站点),这显然是不可行的。
      【解决方案6】:

      昨晚我终于崩溃了,将我的服务器从自签名证书切换到了 GoDaddy 证书,这没什么大不了的,除了他们的流程不够清晰。每年 30 美元是一个合理的成本,在非 GoDaddy 服务器上使用证书不是问题。

      如果您要与公众讨论 SSL,请获取由真实 CA 签名的真实证书。即使您正在为最低工资工作,您每年也可以节省超过 30 美元的浪费时间来处理用户的恐惧或不信任,这甚至还没有考虑到由于他们害怕离开您的网站而可能造成的任何收入损失。

      【讨论】:

        【解决方案7】:

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

        如果这是一个私人网站,您可能不会在意,只要您获得链接级加密(而且您是否害怕有人嗅探您的流量?)。如果有公共访问权限并且您需要 SSL,请从公认的 CA 获取签名证书,正如其他人已经建议的那样。

        【讨论】:

          【解决方案8】:

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

          银行应使用客户证书进行身份验证。那将使那辆货车无法做任何事情……因为它没有银行私钥。

          自签名证书非常好...假设您的互联网连接没有受到损害。如果您的连接被破坏...无论如何,您可能都被困住了。

          【讨论】:

          • 对 SSL 的 MITM 攻击是可能的。这也不是关于有人入侵我的网络,而是我连接到的那个我无法控制的那个。
          猜你喜欢
          • 1970-01-01
          • 2011-04-30
          • 2020-07-30
          • 2015-11-02
          • 1970-01-01
          • 2013-02-28
          • 2018-07-07
          • 1970-01-01
          • 2012-03-20
          相关资源
          最近更新 更多