小秦哥 发表于 2025-2-13 14:51:17

网络安全 | SNI先容及F5中的配置应用

关注:CodingTechWork

SNI先容

  SNI(Server Name Indication)是 TLS/SSL 协议中的一个紧张扩展,旨在解决同一 IP 地址上托管多个网站时,怎样选择正确的 SSL/TLS 证书进行加密通信的标题。SNI 通过在 TLS 握手初期传递客户端哀求的主机名,使得服务器能够选择适当的证书进行加密通信。随着现代互联网环境中假造主机和多证书托管的普及,SNI 已成为实现安全通信的核心技能之一。
为什么需要 SNI?

  在传统的 SSL/TLS 协议中,客户端和服务器通过握手过程交换加密所需的密钥信息。然而,标准的 SSL/TLS 握手流程无法区分同一 IP 地址上托管的多个网站,导致服务器无法选择适当的 SSL/TLS 证书进行加密毗连。这个标题尤其在共享 IP 地址的假造主机环境中非常突出。
  为了降服这一范围,SNI 被引入到 SSL/TLS 协议中。通过在握手阶段就将主机名传递给服务器,SNI 使得服务器能够根据客户端哀求的域名来选择和返回正确的 SSL/TLS 证书,从而实现多个网站在同一 IP 上的安全通信。
SNI 的技能原理

  SNI 扩展是在 TLS/SSL 协议中的一部门,属于客户端发起的“ClientHello”消息扩展。在客户端与服务器的初始通信中,客户端会将哀求的主机名通过 SNI 扩展传递给服务器。这样,服务器就能在吸收到握手哀求后,依据该主机名来选择适合的证书进行后续的加密通信。
SNI 的工作流程

https://i-blog.csdnimg.cn/direct/320fe05c3f87407abd3221508ac6fa3e.png

[*] 客户端哀求:
客户端通过发送“ClientHello”消息发起哀求,其中包括了目的主机的主机名。这个主机名通过 SNI 扩展部门传递到服务器。
[*] 服务器响应:
服务器根据客户端哀求的主机名选择适当的 SSL/TLS 证书。如果服务器支持 SNI,它会根据主机名匹配证书,并在握手过程中返回给客户端。
[*] 证书交换:
服务器将选定的证书链返回给客户端。客户端验证证书后,与服务器完成安全毗连的建立,进行加密通信。
关键要点



[*]握手过程的影响:SNI 只在 TLS 握手的早期阶段传递主机名,后续的加密通信不受影响。
[*]客户端支持:客户端需要支持 SNI 扩展才能传递主机名信息。
[*]服务器配置:服务器需要配置多个证书,以便根据哀求的主机名选择符合的证书。
Nginx怎样配置 SNI

  假设我们有两个不同的域名 www.example1.com 和 www.example2.com,它们都托管在同一台服务器上,但每个域名需要利用不同的 SSL/TLS 证书。以下是一个基于 Nginx 配置 SNI 的简单示例:
# 配置用于 www.example1.com 的 SSL
server {
    listen 443 ssl;
    server_name www.example1.com;

    ssl_certificate /path/to/example1.com.crt;
    ssl_certificate_key /path/to/example1.com.key;

    # 其他配置...
}

# 配置用于 www.example2.com 的 SSL
server {
    listen 443 ssl;
    server_name www.example2.com;

    ssl_certificate /path/to/example2.com.crt;
    ssl_certificate_key /path/to/example2.com.key;

    # 其他配置...
}
SNI 的应用场景

应用场景形貌假造主机托管SNI 是假造主机托管中的核心技能。当多个网站共享同一 IP 地址时,SNI 允许服务器根据不同的主机名选择不同的证书。这使得单一服务器可以承载多个 HTTPS 网站,而无需为每个网站分配独立的 IP 地址。多证书管理对于托管多个域名且每个域名利用不同 SSL/TLS 证书的网站,SNI 提供了一种简便的管理方式。每个域名可以利用独立的证书,而且无需更改服务器 IP 地址即可实现 SSL 加密。证书过渡与更新利用 SNI,可以实现平滑的证书过渡与更新。例如,在更换证书时,不需要更换 IP 地址,也不会中断现有服务。每个域名的证书可以独立更新,减少了对用户的影响。负载均衡和反向署理SNI 也被广泛应用于负载均衡器和反向署理中。根据 SNI 中传递的主机名,负载均衡器可以将哀求转发给不同的后端服务器。许多云平台和反向署理(如 AWS、Nginx)都支持基于 SNI 的证书选择和哀求路由。 SNI 的范围性

范围性/挑战形貌老旧浏览器的兼容性SNI 在较旧的浏览器和利用体系(如 IE6 及以下版本)中大概不被支持。如果用户利用不支持 SNI 的客户端进行访问,大概会导致 SSL 握手失败,无法建立加密毗连。无法提供 IP 级别的隔离虽然 SNI 使得同一 IP 地址上可以托管多个证书,但它并未提供与利用独立 IP 地址雷同的物理隔离。因此,SNI 依然是基于域名进行区分,无法实现像不同 IP 地址那样的隔离。性能影响虽然 SNI 本身不会带来显著的性能开销,但在某些情况下,服务器需要管理多个证书,这大概导致配置和调试的复杂性增加,进而影响性能表现。 在 F5 BIG-IP 中配置 SNI 和 默认 SSL 配置文件

  当利用 SNI(Server Name Indication)时,默认 SSL 配置文件(Default SSL Profile)在没有找到匹配的 SNI 时起着紧张作用。默认 SSL 配置文件是当没有匹配的 SNI 时所应用的回退配置文件,用来处理毗连。
默认 SSL 配置文件在 SNI 中的关键概念

SNI 匹配

  当客户端通过 SSL/TLS 毗连到服务器时,它会在握手过程中发送 SNI,以指示它哀求的主机名。F5 BIG-IP 会利用该 SNI 来选择适当的 SSL 配置文件和相应的证书。
默认 SSL 配置文件

  如果没有 SNI,大概提供的 SNI 不匹配任何已配置的 SSL 配置文件,则利用 默认 SSL 配置文件 来处理毗连。这确保纵然 SNI 无法识别,客户端仍会收到有用的 SSL 证书。
配置步骤

1. 创建 SSL 配置文件(可选)

  首先,为每个通过 SNI 处理的域名创建单独的 Client SSL 配置文件。你可以为每个配置文件配置证书、加密算法等其他 SSL 设置。
2. 配置默认 SSL 配置文件

在 F5 中创建一个 默认 SSL 配置文件,当 SNI 无法匹配时利用该配置文件。


[*]转到 Local Traffic -> Profiles -> SSL
[*]点击 Create 创建一个新的 Client SSL Profile。
[*]为此配置文件分配一个默认证书,并配置必要的 SSL 设置(例如,选择默认证书)。
3. 将 SSL 配置文件分配给假造服务器

  为每个假造服务器分配 SNI 基础的 SSL 配置文件,这些配置文件会根据特定的主机名进行匹配。
  对于那些应该利用 默认 SSL 配置文件(即没有匹配 SNI 的假造服务器),确保该默认配置文件已应用。


[*]在创建或编辑假造服务器时,在 SSL Profile (Client) 部门,选择 Default SSL Profile 来处理未匹配的 SSL 毗连。
4. 在假造服务器中配置 SNI

  要根据主机名配置 SSL 配置文件(基于 SNI),为每个假造服务器分配适当的 Client SSL Profile。如果这些假造服务器没有匹配的 SNI 配置文件,默认 SSL 配置文件 将会被应用。
5. 测试配置

  配置完成后,测试 SSL/TLS 毗连。如果客户端发送的哀求没有识别的 SNI 大概没有发送 SNI,默认 SSL 配置文件 将被利用,客户端将收到来自默认配置文件的证书。
你可以利用 curl 命令进行测试:
curl -v https://www.example.com
如果没有匹配的 SNI,该命令将触发利用默认 SSL 配置文件的证书。
配置示例

默认 SSL 配置文件



[*]转到 Local Traffic -> Profiles -> SSL -> Client
[*]创建一个 默认 SSL 配置文件 并分配默认的 SSL 证书。
特定域的 SNI 配置文件



[*]为每个特定的域名(例如 example1.com、example2.com)创建额外的 Client SSL 配置文件,每个配置文件都有其独立的 SSL 证书。
假造服务器的 SSL 配置文件分配



[*]为每个假造服务器分共同适的 Client SSL 配置文件,该配置文件基于 SNI 来匹配主机名。
[*]对于没有匹配的假造服务器,默认 SSL 配置文件 将处理 SSL 毗连。
通过这种方式,可以清晰地了解怎样在 F5 BIG-IP 中配置 SNI 和默认 SSL 配置文件,并确保在没有匹配的 SNI 时利用默认配置文件处理 SSL/TLS 毗连。
总结

  SNI 是现代互联网中托管多个 HTTPS 网站的关键技能,它使得服务器能够根据客户端哀求的主机名选择正确的 SSL/TLS 证书,解决了同一 IP 地址上多个网站的证书选择标题。随着网络托管技能的进步,SNI 将在假造主机、证书管理和安全通信等范畴发挥越来越紧张的作用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 网络安全 | SNI先容及F5中的配置应用