使用 SSL 保护负载平衡流量

Citrix ADC SSL 卸载功能透明地提高了执行 SSL 事务的网站的性能。通过将 CPU 密集型 SSL 加密和解密任务从本地 Web 服务器卸载到设备,SSL 卸载功能可确保 Web 应用程序能够安全交付,且不会在服务器处理 SSL 数据时导致性能下降。解密 SSL 通信之后,所有标准服务都可以对其进行处理。SSL 协议可以无缝运用于各种类型的 HTTP 和 TCP 数据,为使用此类数据的事务提供安全通道。

要配置 SSL,您必须首先启用 SSL。然后,在设备上配置 HTTP 或 TCP 服务以及 SSL 虚拟服务器,并将这些服务绑定到该虚拟服务器。还必须添加一个证书密钥对,并将其绑定到 SSL 虚拟服务器。如果使用 Outlook Web Access 服务器,则必须创建一个操作以启用 SSL 支持,并创建策略以应用该操作。SSL 虚拟服务器可拦截传入的加密的通信,并使用协商确定的算法对其进行解密。然后,SSL 虚拟服务器将解密的数据转发到设备上的其他实体,以进行相应的处理。

有关 SSL 卸载的详细信息,请参阅SSL 卸载与加速

SSL 配置任务序列

要配置 SSL,您必须首先启用 SSL。然后,必须在 Citrix ADC 设备上创建 SSL 虚拟服务器和 HTTP 或 TCP 服务。最后,必须将一个有效的 SSL 证书和已配置的服务绑定到该 SSL 虚拟服务器。

SSL 虚拟服务器可拦截传入的加密通信,并使用协商确定的算法对其进行解密。然后,SSL 虚拟服务器将解密的数据转发到 Citrix ADC 设备上的其他实体以进行适当处理。

下面的流程图显示了基本 SSL 卸载设置配置任务的顺序。

图 1. SSL 卸载配置任务的顺序

图片

启用 SSL 卸载

在启用 SSL 功能之前,应首先配置 SSL 卸载。虽然无需启用 SSL 功能即可在设备上配置基于 SSL 的实体,但必须启用 SSL,这些实体才能运行。

使用 CLI 启用 SSL

在命令提示窗口中,键入以下命令以启用 SSL 卸载并验证配置:

  • enable ns feature SSL
  • show ns feature
> enable ns feature ssl




Done


> show ns feature


Feature Acronym Status


------- ------- ------


1) Web Logging WL ON


2) SurgeProtection SP OFF


3) Load Balancing LB ON . . .


 9) SSL Offloading SSL ON


10) Global Server Load Balancing GSLB ON . .


Done >

使用 GUI 启用 SSL

按照以下步骤操作:

  1. 在导航窗格中,展开 System(系统),然后单击 Settings(设置)。
  2. 在详细信息窗格的“模式和功能”下,单击“更改基本功能”。
  3. 选中 SSL Offloading(SSL 卸载)复选框,然后单击 OK(确定)。
  4. 在启用/禁用功能中? 消息框中,单击是。

创建 HTTP 服务

设备上的服务表示服务器上的应用程序。配置后,服务处于禁用状态,直到设备可访问网络中的服务器并监视其状态。本主题包含创建 HTTP 服务的步骤。

注意:对于 TCP 流量,请执行此主题和接下来的主题中介绍的步骤,但需创建 TCP 服务而非 HTTP 服务。

使用 CLI 添加 HTTP 服务

在命令提示窗口中,键入以下命令以添加 HTTP 服务并验证配置:

  • add service <name> (<IP> | <serverName>) <serviceType> <port>
  • show service <name>

示例

> add service SVC_HTTP1 10.102.29.18 HTTP 80


 Done


> show service SVC_HTTP1


        SVC_HTTP1 (10.102.29.18:80) - HTTP


        State: UP


        Last state change was at Wed Jul 15 06:13:05 2009


        Time since last state change: 0 days, 00:00:15.350


        Server Name: 10.102.29.18


        Server ID : 0   Monitor Threshold : 0


        Max Conn: 0     Max Req: 0      Max Bandwidth: 0 kbits


        Use Source IP: NO


        Client Keepalive(CKA): NO


        Access Down Service: NO


        TCP Buffering(TCPB): NO


        HTTP Compression(CMP): YES


        Idle timeout: Client: 180 sec   Server: 360 sec


        Client IP: DISABLED


        Cacheable: NO


        SC: OFF


        SP: OFF


        Down state flush: ENABLED





1)      Monitor Name: tcp-default


                State: UP       Weight: 1


                Probes: 4       Failed [Total: 0 Current: 0]


                Last response: Success - TCP syn+ack received.


                Response Time: N/A


 Done



通过使用 GUI 添加 HTTP 服务

请按照以下步骤进行操作:

  1. 导航到 Traffic Management(流量管理)> SSL Offload(SSL 卸载)> Services(服务)。
  2. 在详细信息窗格中,单击 Add(添加)。
  3. 在“创建服务”对话框的“服务名称”、“服务器”和“端口”文本框中,键入服务的名称、IP 地址和端口(例如,SVC_HTTP1、10.102.29.18 和 80)。
  4. 在“协议”列表中,选择服务的类型(例如,HTTP)。
  5. 单击 Create(创建),然后单击 Close(关闭)。您配置的 HTTP 服务将显示在“服务”页面中。
  6. 通过选择服务并查看窗格底部的“详细信息”部分,验证您配置的参数是否已正确配置。

添加基于 SSL 的虚拟服务器

在基本 SSL 卸载设置中,SSL 虚拟服务器可拦截加密的通信,将其解密,并将明文消息发送到绑定到该虚拟服务器的服务。将 CPU 密集型 SSL 处理卸载到设备可使后端服务器能够处理更多请求。

使用 CLI 添加基于 SSL 的虚拟服务器

在命令提示窗口中,键入以下命令以创建基于 SSL 的虚拟服务器并验证配置:

  • add lb vserver <name> <serviceType> [<IPAddress> <port>]
  • show lb vserver <name>

警告:为确保安全连接,在启用基于 SSL 的虚拟服务器之前,必须将一个有效的 SSL 证书绑定到该虚拟服务器。

示例

> add lb vserver vserver-SSL-1 SSL 10.102.29.50 443




  Done


  > show lb vserver vserver-SSL-1


  vserver-SSL-1 (10.102.29.50:443) - SSL Type: ADDRESS


  State: DOWN[Certkey not bound] Last state change was at Tue Jun 16 06:33:08 2009 (+176 ms)


  Time since last state change: 0 days, 00:03:44.120


  Effective State: DOWN Client Idle Timeout: 180 sec


  Down state flush: ENABLED


  Disable Primary Vserver On Down : DISABLED


  No. of Bound Services : 0 (Total) 0 (Active)


  Configured Method: LEASTCONNECTION Mode: IP


  Persistence: NONE


  Vserver IP and Port insertion: OFF


  Push: DISABLED Push VServer: Push Multi Clients: NO Push Label Rule: Done

使用 GUI 添加基于 SSL 的虚拟服务器

请按照以下步骤进行操作:

  1. 导航到 Traffic Management(流量管理)> SSL Offload(SSL 卸载)> Virtual Servers(虚拟服务器)。
  2. 在详细信息窗格中,单击 Add(添加)。
  3. 在“创建虚拟服务器 (SSL 卸载)”对话框的“名称”、“IP 地址”和“端口”文本框中,键入虚拟服务器的名称、IP 地址和端口(例如,虚拟服务器 SSL-1、10.102.29.50 和 443)。
  4. 在“协议”列表中,选择虚拟服务器的类型,例如 SSL。
  5. 单击 Create(创建),然后单击 Close(关闭)。
  6. 通过选择虚拟服务器并查看窗格底部的“详细信息”部分,验证您配置的参数是否已正确配置。虚拟服务器标记为“向下”,因为证书密钥对和服务尚未绑定到它。

警告:为确保安全连接,在启用基于 SSL 的虚拟服务器之前,必须将一个有效的 SSL 证书绑定到该虚拟服务器。

将服务绑定到 SSL 虚拟服务器

解密传入数据之后,SSL 虚拟服务器会将数据转发到与该虚拟服务器绑定的服务。

可以加密设备与服务器之间的数据传输,也可通过明文方式传输。如果设备与服务器之间的数据传输已加密,则端到端的整个事务将是安全的。有关为端到端安全配置系统的更多信息,请参阅s[SSL 卸载和加速

使用 CLI 将服务绑定到虚拟服务器

在命令提示窗口中,键入以下命令以将服务绑定到 SSL 虚拟服务器并验证配置:

  • bind lb vserver <name> <serviceName>
  • show lb vserver <name>

示例

> bind lb vserver vserver-SSL-1 SVC_HTTP1




  Done


  > show lb vserver vserver-SSL-1 vserver-SSL-1 (10.102.29.50:443) - SSL Type:


  ADDRESS State: DOWN[Certkey not bound]


  Last state change was at Tue Jun 16 06:33:08 2009 (+174 ms)


  Time since last state change: 0 days, 00:31:53.70


  Effective State: DOWN Client Idle


  Timeout: 180 sec


  Down state flush: ENABLED Disable Primary Vserver On Down :


  DISABLED No. of Bound Services : 1 (Total) 0 (Active)


  Configured Method: LEASTCONNECTION Mode: IP Persistence: NONE Vserver IP and


  Port insertion: OFF Push: DISABLED Push VServer: Push Multi Clients: NO Push Label Rule:





  1) SVC_HTTP1 (10.102.29.18: 80) - HTTP


  State: DOWN Weight: 1


  Done

使用 GUI 将服务绑定到虚拟服务器

  1. 导航到 Traffic Management(流量管理)> SSL Offload(SSL 卸载)> Virtual Servers(虚拟服务器)。
  2. 在详细信息窗格中,选择虚拟服务器,然后单击 Open(打开)。
  3. 在“服务”选项卡上的“活动”列中,选中要绑定到所选虚拟服务器的服务旁边的复选框。
  4. 单击确定。
  5. 确认窗格底部 Details(详细信息)部分中的 Number of Bound Services(绑定服务数)计数器按绑定到虚拟服务器的服务数量递增。

添加证书密钥对

SSL 证书是 SSL 密钥交换和加密-解密过程不可或缺的元素。该证书在 SSL 握手过程中用于创建 SSL 服务器的标识。您可以使用 Citrix ADC 设备上拥有的有效现有 SSL 证书,也可以创建自己的 SSL 证书。此设备支持高达 4096 位的 RSA/DSA 证书。

注意:Citrix 建议您使用由受信任的证书颁发机构颁发的有效 SSL 证书。所有 SSL 客户端均不兼容无效证书和自创建的证书。

必须首先将证书与其相应的密钥进行配对,然后才能将其用于 SSL 处理。然后,证书密钥对将绑定到虚拟服务器,用于 SSL 处理。

使用 CLI 添加证书密钥对

在命令提示窗口中,键入以下命令以创建证书密钥对并验证配置:

  • add ssl certKey <certkeyName> -cert <string> [-key <string>]
  • show sslcertkey <name>

示例

> add ssl certKey CertKey-SSL-1 -cert ns-root.cert -key ns-root.key




 Done


> show sslcertkey CertKey-SSL-1


   Name: CertKey-SSL-1 Status: Valid,


   Days to expiration:4811 Version: 3


   Serial Number: 00 Signature Algorithm: md5WithRSAEncryption Issuer: C=US,ST=California,L=San


   Jose,O=Citrix ANG,OU=NS Internal,CN=de fault


   Validity Not Before: Oct 6 06:52:07 2006 GMT Not After : Aug 17 21:26:47 2022 GMT


   Subject: C=US,ST=California,L=San Jose,O=Citrix ANG,OU=NS Internal,CN=d efault Public Key


   Algorithm: rsaEncryption Public Key


   size: 1024


 Done

使用 GUI 添加证书密钥对

请按照以下步骤进行操作:

  1. 导航到 Traffic Management(流量管理)> SSL > Certificates(证书)。
  2. 在详细信息窗格中,单击 Add(添加)。
  3. 在“安装证书”对话框的“证书密钥对名称”文本框中,键入要添加的证书密钥对的名称,例如,Certkey-SSL-1。
  4. 在“详细信息”下的“证书文件名”中,单击“浏览(设备)”以查找证书。证书和密钥均存储在设备的 /nsconfig/ssl/ 文件夹中。要使用本地系统上的证书,请选择 Local(本地)。
  5. 选择要使用的证书,然后单击“选择”。
  6. 在 Private Key File Name(私钥文件名称)中,单击 Browse (Appliance)(浏览(设备))查找私钥文件。要使用本地系统上的私钥,请选择 Local(本地)。
  7. 选择要使用的密钥,然后单击“选择”。要加密证书密钥对中使用的密钥,请在“密码”文本框中键入要用于加密的密码。
  8. 点击安装。
  9. 双击证书密钥对,然后在“证书详细信息”窗口中验证参数是否已正确配置并已保存。

将 SSL 证书密钥对绑定到虚拟服务器

将 SSL 证书与其对应的密钥配对后,必须将证书密钥对绑定到 SSL 虚拟服务器,使其可用于 SSL 处理。要进行安全会话,需要在客户端计算机与设备上基于 SSL 的虚拟服务器之间建立连接。然后,该虚拟服务器才会对传入流量执行 SSL 处理。因此,在设备上启用 SSL 虚拟服务器之前,必须将一个有效的 SSL 证书绑定到该 SSL 虚拟服务器。

使用 CLI 将 SSL 证书密钥对绑定到虚拟服务器

在命令提示窗口中,键入以下命令以将 SSL 证书密钥对绑定到虚拟服务器并验证配置:

  • bind ssl vserver <vServerName> -certkeyName <string>
  • show ssl vserver <name>

示例

> bind ssl vserver Vserver-SSL-1 -certkeyName CertKey-SSL-1




Done


> show ssl vserver Vserver-SSL-1





     Advanced SSL configuration for VServer Vserver-SSL-1:


     DH: DISABLED


     Ephemeral RSA: ENABLED Refresh Count: 0


     Session Reuse: ENABLED Timeout: 120 seconds


     Cipher Redirect: ENABLED


     SSLv2 Redirect: ENABLED


     ClearText Port: 0


     Client Auth: DISABLED


     SSL Redirect: DISABLED


     Non FIPS Ciphers: DISABLED


     SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED





1) CertKey Name: CertKey-SSL-1 Server Certificate


1) Cipher Name: DEFAULT


   Description: Predefined Cipher Alias


Done

使用 GUI 将 SSL 证书密钥对绑定到虚拟服务器

请按照以下步骤进行操作:

  1. 导航到 Traffic Management(流量管理)> SSL Offload(SSL 卸载)> Virtual Servers(虚拟服务器)。
  2. 选择要绑定证书密钥对的虚拟服务器,例如虚拟服务器SSL-1,然后单击 Open。
  3. 在“配置虚拟服务器 (SSL 卸载)”对话框的“SSL 设置”选项卡上的“可用”下,选择要绑定到虚拟服务器的证书密钥对(例如,Certkey-SSL-1),然后单击“添加”。
  4. 单击确定。
  5. 验证您选择的证书密钥对是否显示在“已配置”区域中。

配置对 Outlook Web 访问的支持

如果在 Citrix ADC 设备上使用 Outlook Web 访问 (OWA) 服务器,则必须将设备配置为在指向 OWA 服务器的 HTTP 请求中插入特殊标头字段(前端端 HTTPS: 开),以便服务器生成 URL 链接 https:// 而不是 http://

注意:只能为基于 HTTP 的 SSL 虚拟服务器和服务启用 OWA 支持。不能将其应用于基于 TCP 的 SSL 虚拟服务器和服务。

要配置 OWA 支持,请执行以下操作:

  • 创建一个 SSL 操作以启用 OWA 支持。
  • 创建一个 SSL 策略。
  • 将策略绑定到 SSL 虚拟服务器。

创建 SSL 操作以启用 OWA 支持

要启用 Outlook Web Access (OWA) 支持,必须创建 SSL 操作。SSL 操作绑定到 SSL 策略,并在传入数据与该策略指定的规则相匹配时触发。

创建 SSL 操作以使用 CLI 启用 OWA 支持

在命令提示窗口中,键入以下命令来创建 SSL 操作以启用 OWA 支持并验证配置:

  • add ssl action <name> -OWASupport ENABLED
  • show SSL action <name>

示例

> add ssl action Action-SSL-OWA -OWASupport enabled




Done


> show SSL action Action-SSL-OWA


Name: Action-SSL-OWA


Data Insertion Action: OWA


Support: ENABLED


Done

创建 SSL 操作以使用 GUI 启用 OWA 支持

请按照以下步骤进行操作:

  1. 导航到 Traffic Management(流量管理)> SSL > Policies(策略)。
  2. 在详细信息窗格中的“操作”选项卡上,单击“添加”。
  3. 在 Create SSL Action(创建 SSL 操作)对话框中,将 Action-SSL-OWA 键入到 Name(名称)文本框中。
  4. 在 Outlook Web Access 下,选择 Enabled(已启用)。
  5. 单击 Create(创建),然后单击 Close(关闭)。
  6. 验证 Action-SSL-OWA 显示在 SSL 操作页面中。

创建 SSL 策略

SSL 策略是使用策略基础结构创建的。每个 SSL 策略都具有一个绑定的 SSL 操作,在传入通信与该策略中配置的规则相匹配时执行该操作。

使用 CLI 创建 SSL 策略

在命令提示窗口中,键入以下命令以配置 SSL 策略并验证配置:

  • add ssl policy <name> -rule <expression> -reqAction <string>
  • show ssl policy <name>

示例

> add ssl policy Policy-SSL-1 -rule ns_true -reqaction Action-SSL-OWA

Done

> show ssl policy Policy-SSL-1

Name: Policy-SSL-1 Rule: ns_true

Action: Action-SSL-OWA Hits: 0

Policy is bound to following entities

1) PRIORITY : 0

Done

使用 GUI 创建 SSL 策略

请按照以下步骤进行操作:

  1. 导航到 Traffic Management(流量管理)> SSL > Policies(策略)。
  2. 在详细信息窗格中,单击 Add(添加)。
  3. 在 Create SSL Policy(创建 SSL 策略)对话框的 Name(名称)文本框中,键入 SSL 策略的名称(例如,Policy-SSL-1)。
  4. 在 Request Action(请求操作)中,选择要与此策略关联的已配置 SSL 操作,例如 Action-SSL-OWA。ns_true 正则表达式可将策略应用于所有成功的 SSL 握手通信。但是,如果需要过滤特定的响应,可以使用更为详细的信息来创建策略。有关配置粒度策略表达式的更多信息,请参阅[SSL 操作和策略](/zh-cn/citrix-adc/13/ssl/ssl-actions-and-policies.html0.
  5. 在 Named Expressions(命名表达式)下,选择内置的正则表达式 ns_true,然后单击 Add Expression(添加表达式)。此时“Expression”(表达式)文本框中将出现表达式 ns_true。
  6. 单击 Create(创建),然后单击 Close(关闭)。
  7. 选择策略并查看窗格底部的 Details(详细信息)部分,确认该策略配置正确。

将 SSL 策略绑定到 SSL 虚拟服务器

为 Outlook Web Access 配置 SSL 策略后,将此策略绑定到将解析传入 Outlook 流量的虚拟服务器。如果传入数据与在 SSL 策略中配置的任何规则匹配,则将触发该策略并执行与其关联的操作。

使用 CLI 将 SSL 策略绑定到 SSL 虚拟服务器

在命令提示窗口中,键入以下命令以将 SSL 策略绑定到 SSL 虚拟服务器并验证配置:

  • bind ssl vserver <vServerName> -policyName <string>
  • show ssl vserver <name>

示例

> bind ssl vserver Vserver-SSL-1 -policyName Policy-SSL-1

 Done

> show ssl vserver Vserver-SSL-1

Advanced SSL configuration for VServer Vserver-SSL-1:

DH: DISABLED

Ephemeral RSA: ENABLED

Refresh Count: 0

Session Reuse: ENABLED

Timeout: 120 seconds

Cipher Redirect: ENABLED

SSLv2 Redirect: ENABLED

ClearText Port: 0

Client Auth: DISABLED

SSL Redirect: DISABLED

Non FIPS Ciphers: DISABLED

SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED

1) CertKey Name: CertKey-SSL-1 Server Certificate

1) Policy Name: Policy-SSL-1 Priority: 0

1) Cipher Name: DEFAULT Description: Predefined Cipher Alias

Done

使用 GUI 将 SSL 策略绑定到 SSL 虚拟服务器

请按照以下步骤进行操作:

  1. 导航到 Traffic Management(流量管理)> SSL Offload(SSL 卸载)> Virtual Servers(虚拟服务器)。
  2. 在详细信息窗格中,选择虚拟服务器(例如 Vserver-SSL-1),然后单击 Open(打开)。
  3. 在 Configure Virtual Server (SSL Offload)(配置虚拟服务器(SSL 卸载))对话框中,单击 Insert Policy(插入策略),然后选择要绑定到 SSL 虚拟服务器的策略。也可以双击 Priority(优先级)字段并键入新的优先级。
  4. 单击确定。