锐安盾-网站安全加速服务

中国站

联系我们

400-002-9968

售前咨询

售后服务

注册 登录

博客 > SSL证书部署最佳实践

SSL证书部署最佳实践

  • 标签:
  • SSL证书
  • SSL/TLS
  • CA
  • SSL部署

浏览量:4046次评论:0次

作者:May时间:2021-09-01 14:16:55

SSL/TLS是一种看似简单的技术。它易于部署,正常部署后就可以运行了。但想要部署地安全可靠却并非易事。这就使得系统管理员和开发者不得不花费额外时间和精力了解SSL/TLS相关技术,以便能配置一个高安全的服务器或应用。

为了让系统管理员轻松部署安全站点或应用,本篇将讲解SSL/TLS部署最佳实践。

一、私钥和证书

SSL/TLS中,所有安全都始于服务器的密码标识。因此需要一个强大的私钥来防止攻击。另外,拥有一张有效且强大的证书也是至关重要的,它能授予私钥代表特定主机名的权利。没有这两个基本构建块,任何东西都无法得到安全保障。

1.1使用2048位私钥

对于大多数网站来说,2048RSA密钥足以保障其安全性了。RSA加密算法的普遍应用使得这种类型的密钥成为默认的安全选择。如果是2048位,这类密钥提供了相当于112位的安全性。如果您想要比这更高的安全性,如128位的安全性,您需要3072位的RSA密钥,但是RSA加密算法的扩展性不太好,3072位的RSA密钥将会影响性能。ECDSA密钥提供了一种替代方案,可以给予更高的安全性和更好的性能。ECDSA密钥为256位,提供128位的安全性。少数老旧的客户端不支持ECDSA,但现代客户端能支持。如果您不介意管理此类设置的开销,则可以同时部署支持RSAECDSA加密算法的SSL证书。

1.2保护私钥

私钥是非常重要的资产之一,需限制访问私钥人数,同时建议您采取以下策略保护私钥:

  • 在可信的计算机上生成私钥,建议拒绝CA为您生成私钥。
  • 从一开始就对密钥进行安全保护,防止密钥存储在备份系统中时遭到破坏。
  • 证书被破坏后,撤销旧证书并生成新的私钥。
  • 每年更新SSL证书。如果您采用自动化管理证书,更新频率应更高。有效期较短的证书在实践中更安全。
  • 保持证书的公钥与私钥相匹配,否则每当您获得新证书时,还应该生成新的私钥。

1.3确保覆盖所有域名

确保您的SSL证书覆盖您希望用于所有站点域名,否则无效证书警告会降低用户对该站点的信任度。经验法则是,安全的Web服务器应该具备这样一个证书,该证书对于指向它的每个DNS名称都有效。

通配符证书有其用途而且能满足更广泛的需求,但在跨团队或部门情况下,使用通配符证书时容易将密钥暴露给很多人。为控制访问私钥人数防止私钥被滥用,这种情况下请避免使用通配符证书。

请确保将所有必要的域名添加到使用者可选名称(SAN),因为所有最新的浏览器都不会通过检查通用名称进行验证。

1.4从可信CA获取证书

选择认真对待其证书业务和安全性的可信证书颁发机构 ,即CA。选择 CA 时,请参考以下标准:

  • 对待安全的态度。所有 CA 都会接受定期审计,但有些CA比其他CA更重视安全。找出在这方面哪个CA做的更好并不容易,但您可以做的一项是检查他们的安全历史记录,查看CA面对漏洞的反应是怎样,是否从错误中吸取了教训。
  • 提供的服务。您选择的CA应支持证书吊销列表 (CRL) 和在线证书状态协议 (OCSP) 吊销方法,并具有稳定的网络可用性和高性能。许多站点喜欢使用域名验证型DV证书,但您还应该考站点是否需要扩展验证型EV证书。但无论哪种情况,您都应该选择公钥算法。目前大多数网站都使用RSA算法,但ECDSA可能会因为其性能优势在未来变得重要。
  • 证书管理。如果您需要大量SSL证书并在复杂的环境中运行,请选择一个可以为您提供良好的管理工具的CA

注意:为获得最佳效果,请提前至少一周获取证书,以便部署并正常运行。这样做有助于避免因计算机时间不准确而导致出现证书不安全警告。另外,由于CA需要额外的时间才能有效的将新证书发送给OCSP响应,所以最好先提前获取证书避免证书撤销检查的失败。因此,千万不要等到您的证书到期时才替换它们。

1.5使用强签名算法

证书安全性取决于私钥的强度和签名中使用的散列函数强度。如今SHA1散列函数的证书被普遍认为是不安全的,所以最好安装使用SHA256散列函数的证书。

1.6使用DNS CAA

DNS CAA是一项防止HTTPS证书错误颁发的安全措施,CAA标准可以允许域名所有者限制能为其域名颁发证书的CA。如果没有CAA记录,那么任何人都能为该域名生成CSR并获取任何CA签发的证书。使用DNS CAA记录,可以减少欺诈证书的出现,从而使站点更加安全。如果CA启用自动签发证书的流程,那么就应该检查DNS CAA记录,这样可以减少错误颁发证书的风险。

建议通过为您的证书添加CAA记录将CA列入白名单。添加您信任的CA为您颁发证书。

二、配置

正确的SSL服务器配置可以让您的网站身份能正常向用户展示以增强信任,并能使用安全的加密原语以缓解所有已知的缺陷。

2.1使用完整的证书链

在部署SSL证书时,仅靠服务器证书是不够的,这就需要两个或多个证书来建立完整的信任链。如果您部署了一个有效证书,但却缺少必要的中间证书,那么就会出现常见的配置问题。为避免这种情况的发生,您需要按相应顺序部署CA提供给您的所有证书。

2.2使用安全的协议

SSL/TLS系列中有六种协议:SSL 2.0、SSL 3.0、TLS1.0、TLS 1.1、TLS 1.2 和 TLS 1.3:

  • SSL 2.0不安全,不能使用。
  • SSL 3.0与HTTP一起使用时不安全。它也已过时,建议不使用。
  • TLS 1.0和TLS 1.1已于20201月弃用。
  • TLS1.2和TLS 1.3都没有已知的安全问题。TLS 1.2TLS 1.3是目前主要使用的安全协议,因为这些版本提供现代认证加密(也称为AEAD)。如果您的服务器不支持 TLS 1.2TLS 1.3,那您的网站可能缺乏安全性。
  • TLS 1.3相对来说更加安全,性能更强大。

2.3使用安全的密码套件

要确保安全通信,必须首先确定您是直接与所需方通信(而不是通过窃听的其他人)并安全地交换数据。在 SSL TLS 中,密码套件定义了安全通信的发生方式。 它们由不同的构建块组成,其理念是通过多样性实现安全。如果发现其中一个构建块薄弱或不安全,您应该能够切换到另一个构建块。

目前主要依赖提供强身份验证和密钥交换、前向保密和至少128位加密的AEAD套件。可能仍然有支持其他一些较弱的套件,前提是它们仅与不支持任何更好的旧客户端协商。下面是一些过时的密码原语,建议不要使用:

  • ADH套件不提供身份验证。
  • NULL密码套件不提供加密。
  • 导出密码套件在连接中协商时不安全,但也可以针对更喜欢更强大的套件(FREAK攻击)的服务器使用。
  • 弱密码(112 位或更少位数)的套件很容易被破解,是不安全的。
  • RC4不安全。
  • 64位分组密码(3DES / DES / RC2 / IDEA)很弱。
  • RSA密钥交换密码套件较弱。
  • 建议使用AEADPFS密码套件:
  • AEAD密码套件-包括CHACHA20_POLY1305, GCM and CCM
  • PFS密码套件-包括ECDHE_RSA, ECDHE_ECDSA, DHE_RSA, DHE_DSS, CECPQ1和所有的TLS 1.3密码。

以下是专为RSA和ECDSA密钥设计的套件配置

注意建议先在临时环境中测试TLS配置,只有在确定一切按预期工作时才转移到生成环境。请注意,以上是一个通用列表,并非所有系统(尤其是旧系统)都支持所有套件,所以建议参考SSL服务器配置评级指南进行检测

以上示例配置使用标准的TLS套件名称。一些平台使用非标准名称;有关更多详细信息,请参阅您平台的文档。例如,以下套件名称将与OpenSSL一起使用:

2.4选择最佳密码套件

SSL 3.0 及更高版本的协议中,客户端需提交他们支持的密码套件列表,服务器从列表中选择一个用于连接的套件。然而,并非所有服务器都能做出最佳选择。有些服务器会从客户端列表中选择第一个支持的套件。因此,让服务器主动选择最佳可用密码套件才能使SSL部署安全达到最佳化。

2.5使用前向保密

前向保密(也称完美前向保密,简称PFS),它是一种协议功能,可不依赖于服务器私钥实现安全对话。如果不使用前向保密的密码套件,他人就能恢复服务器私钥,进而解密所有先前记录下来加密对话。使用ECDHE套件就能在Web浏览器中启用前向保密。为了支持更广泛的客户端,您还应该使用 DHE套件作为ECDHE后备。除非绝对必要,请避免RSA密钥交换。

2.6使用强密钥交换

对于密钥交换,公共站点通常可以选择常用的Diffie-Hellman密钥交换(DHE)或椭圆曲线变体ECDHERSA密钥交换应用非常广泛,但它不提供前向保密。当然还有其他密钥交换算法,但它们通常不安全。

2015年,一组研究人员发表了针对DHE的新攻击,他们的工作被称为Logjam攻击。 研究人员发现,较低强度的DH密钥交换(例如768位)很容易被破解。为了安全起见,如果部署 DHE,请至少配置2048位。一些老版本的客户端(例如Java 6)可能不支持这种强度级别。ECDHE相比之下性能更高、更快速。secp256r1命名曲线(也称为P-256)是一个不错的选择。

小结

近年来发生了几次针对SSLTLS的严重攻击,但如果您运行的是最新软件并遵循本指南中的SSL部署最佳实践建议,那就不必太过担心这些问题。但是,没有什么是绝对安全的,最好的做法是密切关注网络安全,及时解决安全漏洞问题。

我的评论

还未登录?点击登录

微信扫码沟通
微信扫码沟通

微信扫码沟通

售前咨询
合作
售后
return head