包含 Let&# 39;s Encrypt、商业和私人证书以及自签名 ssl 证书的指南

简介

推动越来越多的Web流量使用SSL加密来保护,这意味着越来越多的服务和用例需要一种解决方案来获得适当的证书。无论是公共网站、内部网流量,还是Web应用程序的临时服务器,您都需要证书来保护您的数据并满足用户的现代安全期望。

SSL连接的主要好处是隐私和数据完整性。连接是私有的,因为加密可以防止窃听。通过加密方式验证您连接的是正确的服务器(而不是冒名顶替者),以及验证个别消息在传输过程中未被篡改,可以确保数据完整性。

有几种不同的方法可以获取SSL证书,根据您的预算、受众和其他一些因素,您可以在商业证书颁发机构、新的自动免费证书颁发机构、自签名证书和您自己的私有证书颁发机构之间进行选择。让我们对这些选项进行比较,并讨论何时使用每种选项可能是最好的。

词汇表

在开始之前,我们将定义一些在讨论SSL安全性时使用的常用术语:

传输层安全(TLS)

传输层安全是一种新的安全协议,它取代了安全套接字层(SSL)。虽然现代加密连接更有可能使用的是TLS,但SSL这个名称在流行的语言中一直存在,我们将在这里使用它。

证书

在本文中,我们将专门引用SSLSERVER证书。每当请求新的SSL连接时,Web服务器都会提供服务器证书。它们包含证书颁发给的主机的名称(应该与您尝试连接的服务器匹配),并由证书颁发机构签名以建立信任。

证书颁发机构(CA)

证书颁发机构验证域所有者请求SSL证书的详细信息,然后--如果一切正常--颁发和签署服务器证书。浏览器和操作系统维护一个受信任的证书颁发机构列表。如果服务器证书是由这些受信任的CA之一签名的,则它也将是受信任的。

域名验证(DV)

域名验证证书将被颁发给那些已经证明他们控制了证书请求的域名的人。此证明通常采取从您的Web服务器或DNS记录提供唯一令牌的形式,CA将在颁发证书之前检查这些令牌。

组织验证(OV)

组织验证证书意味着证书颁发机构还验证了公共数据库中的公司名称和地址。此信息被放入证书中,并且通常仅在用户单击绿色挂锁图标以进行进一步调查时才显示。

扩展验证(EV)

扩展验证比域或组织验证更彻底。EV证书是在不仅检查域所有权,而且验证请求证书的法人实体的存在和位置,以及所述实体控制被验证的域之后颁发的。

与DV和OV证书不同,EV不能作为证书颁发。

EV证书在Web浏览器中也得到了特殊处理。浏览器通常用绿色挂锁图标表示DV证书,而EV证书也会显示一个更大的绿色条,其中包含颁发证书的组织的名称。这是为了减少网络钓鱼攻击,尽管一些研究表明,用户往往不会注意到这个绿色条何时丢失。

通配符证书

通配符证书不是针对特定的完全限定域名(例如,app.example.com )颁发的,而是对整个范围的子域名有效。因此,颁发给* ** .Example.com** 的证书将覆盖Example.com的任何子域,如** app.example.com** 和** Database.Example.com** 。星号字符是_通配符_,可以用任何有效的主机名替换。

证书撤销列表(CRL)

SSL证书可以包含有关如何访问证书吊销列表的信息。客户端将下载并检查此列表,以确保证书未被吊销。CRL已被OCSP响应者取代。

在线证书状态协议(OCSP)

OCSP协议是CRL的替代品,具有更实时和需要更少带宽的优点。一般的操作是类似的:客户端将查询OCSP响应器,以检查证书是否已被吊销。

商业证书颁发机构

商业证书颁发机构允许您购买DV、OV和EV证书。有些提供免费的域验证证书,但有某些限制(例如,没有通配符)。

  • 流程: 手动初始设置和续费流程
  • 成本: 大约10-1000美元
  • 验证: DV、OV、EV
  • 信任: 大多数浏览器和操作系统默认信任
  • 通配符证书:
  • 纯IP证书: 有的会为** 公有** IP地址颁发证书
  • 有效期: 1-3年

在大多数浏览器中,默认情况下大多数商业证书颁发机构都是受信任的。续订过程通常是手动的,因此您必须注意证书的到期日期并提醒自己按时续订。

传统上,商业CA是获得大多数主要浏览器信任的证书的唯一真正选择。这一点随着新的自动化证书颁发机构的出现而改变,比如让我们加密。尽管如此,商业CA是获得EV证书的唯一方法,也是获得大多数浏览器自动信任的通配符证书的唯一方法。如果您需要为不能运行自动We‘s Encrypt客户端(由于软件不兼容,或者可能是低功率嵌入式设备)的设备提供证书,则它们也是一个很好的选择。

商业证书颁发机构通常提供额外的支持合同、担保和认证选项,这对一些公司和行业很重要。

让我们加密吧

让我们加密提供了一种自动机制来申请和续订免费的域名验证证书。他们已经创建了一个标准协议-ACME-用于与该服务交互,以自动检索和续订证书。官方的acme客户端被称为Certbot,,尽管存在许多替代客户端。

  • 流程: 初始设置和续费自动完成。只有APACHE和NGINX设置是通过官方客户端自动进行的,但证书可以独立于任何特定的服务器软件下载和使用。
  • 费用: 免费
  • 验证: 仅DV
  • 默认: 大多数浏览器和操作系统默认信任
  • 通配符证书: 否(计划1月2018)
  • 纯IP证书:
  • 有效期: 90天

让我们加密证书是短暂的,以鼓励自动续订,并减少任何受损的证书可能被攻击者滥用的时间。

如果你有一个可以公开访问的服务器,并且有一个指向它的有效域名,让我们加密可能是一个很好的选择。让我们加密的服务器需要联系您的Web服务器或获取公共DNS记录,以验证您是否控制了域,因此将其用于本地网络上防火墙后的私有服务器可能会有点棘手。不过,使用We‘s Encrypt的基于DNS的授权挑战仍然是可能的。

Let's Encrypt不会为裸IP地址提供证书。

如果您需要EV证书或通配符证书,让我们加密不是一个选项。请注意,We‘s Encrypt可以创建一个包含多达100个主机名的证书,因此您的用例实际上可能不需要通配符,您可能只需要一个覆盖所有现有子域的证书。

尽管如此,由于我们加密API的速率限制,如果您有很多子域,或者可以动态创建的动态子域,让我们加密可能不适合。

自签名证书

可以使用由其自己的私钥签名的SSL证书,从而完全绕过对证书颁发机构的需要。这被称为自签名证书,在设置Web应用程序以供测试或供有限数量的精通技术的用户使用时,通常会建议使用这一证书。

  • 流程: 手动创建证书,无续费机制
  • 费用: 免费
  • 验证: DV和OV
  • 信任: 默认为无。每个证书都必须手动标记为受信任,因为不涉及公共CA
  • 通配符证书:
  • 纯IP证书: 是,任何IP
  • 过期时间: 任意

自签名证书可以使用OpenSSL库附带的openssl命令来制作。您可以在我们的教程OpenSSLEssentials:使用SSL证书、私钥和CSRs.》中找到所需的确切命令以及更多关于OpenSSL的背景知识

因为自签名证书不是由任何受信任的CA签署的,所以您需要手动将该证书标记为受信任,这一过程在每个浏览器和操作系统中都是不同的。此后,该证书将像任何普通的CA签名证书一样工作。

当您只需要手动管理几个客户端上的信任时,自签名证书非常适合一次性使用,并且不需要介意不进行更多手动操作就无法撤销或续订的事实。这通常对于开发和测试目的足够好,或者对于只有少数人会使用的自托管Web应用程序。

私有证书颁发机构

您可以创建自己的私有证书颁发机构,并使用它来签署证书。您的用户需要手动安装并信任您的私有CA,然后才能信任其任何证书。

  • 流程: 手动创建和续订证书,并手动设置CA本身
  • 费用: 免费
  • 验证: DV和OV
  • 信任: 默认为无。您必须手动将专用CA证书分发给客户端以建立信任
  • 通配符证书:
  • 纯IP证书: 是,任何IP
  • 过期时间: 任意

与自签名证书一样,您可以使用OpenSSL库附带的命令行工具创建私有CA,但已经开发了一些替代接口,以简化此过程。tinyCA是这个过程的图形界面,caman是一个命令行程序。这两种方法都可以更轻松地创建CA,然后颁发、续订和撤销证书。

如果您要创建多个证书,并且可以为您的用户手动分发和安装您的CA,则专用CA是一个很好的选择。这可能会将您限制为在组织内部使用,或在可以正确安装CA的一小群精通技术的用户中使用。较大的IT部门通常具有自动为其用户部署CA的方法,从而使该解决方案对他们更具吸引力。

与必须手动将每个证书标记为受信任的自签名证书不同,您只需安装一次专用CA。然后,该CA颁发的所有证书都将继承该信任。

一个缺点是运行CA需要一些开销,并且需要知道如何以安全的方式进行设置和维护。

如果正确的吊销对您的使用很重要,您还需要为证书吊销列表维护一个HTTP服务器,或者维护一个OCSP响应器。

结论

我们回顾了获取或创建SSL证书的几种不同选项。无论哪种方式最适合您的情况,向添加SSL保护都有利于保护您的服务和用户的数据、隐私和安全。

如果您想更深入地研究SSL和我们讨论过的选项,以下链接可能会有所帮助:

  • OpenSSL文档详细描述了该库及其命令
  • CA/Browser Forum是证书颁发机构和浏览器供应商制定CA如何操作的要求和最佳实践的地方。这包括诸如证书的有效期以及是否应该为非公共域名颁发证书等规则
  • Let's Encrypt CA提供了有关ACME协议的更多信息
Published At
Categories with 技术
comments powered by Disqus