ADC
感谢您提供反馈

这篇文章已经过机器翻译.放弃

配置 ADC-Entrust 集成

下面的流程图描述了将 Entrust HSM与 Citrix ADC 结合使用时需要执行的任务:

流程图

如前面的流程图所示,您可以执行以下任务:

  1. 在 HSM 上启用远程配置推送。
  2. 将 ADC 配置为使用 Entrust HSM。
    • 在 HSM 上添加 NSIP 地址。
    • 在 RFS 上配置 ADC 的访问权限。
    • 配置在启动 Hardserver 时自动启动。
    • 在 ADC 上注册 HSM。
    • 在 ADC 上添加 RFS 详细信息。
    • 将 ADC 同步到 RFS。
    • 验证 Entrust HSM 是否已成功在 ADC 上注册。
  3. (可选)创建 HSM RSA 密钥。
  4. 在 Citrix ADC 上配置实体。
    • 添加 HSM 密钥。
    • 使用 HSM 密钥添加证书密钥对。
    • 添加虚拟服务器。
    • 添加服务器对象。
    • 添加服务。
    • 将服务绑定到虚拟服务器。
    • 将证书密钥对绑定到虚拟服务器。
    • 验证配置。

配置 Entrust HSM

指定 Entrust HSM 上的 RFS IP 地址,以便它接受 RFS 推送到它的配置。使用 Entrust HSM 上的 nShield Connect 前面板执行以下步骤。

指定 Entrust HSM 上远程计算机的 IP 地址

  1. 导航到系统配置 > 配置文件选项 > 允许自动推送
  2. 选择,并指定接受配置的计算机 (RFS) 的 IP 地址。

启用在 HSM 上推送远程配置

指定 Entrust HSM 上的 RFS IP 地址,以便它接受 RFS 推送到它的配置。使用 Entrust HSM 上的 nShield Connect 前面板执行以下步骤。

指定 Entrust HSM 上远程计算机的 IP 地址

  1. 导航到系统配置 > 配置文件选项 > 允许自动推送
  2. 选择,并指定接受配置的计算机 (RFS) 的 IP 地址。

将 ADC 配置为使用 Entrust HSM

本文档中使用的示例值:

NSIP 地址=10.217.2.43

Entrust HSM IP 地址 = 10.217.2.112

RFS IP 地址=10.217.2.6

在 HSM 上添加 NSIP 地址

通常,您可以使用 nShield Connect 前面板将客户端添加到 HSM。有关详细信息,请参阅“nShield Connect 快速入门指南”。

或者,使用 RFS 将 ADC 作为客户端添加到 HSM。要添加 ADC,您必须在 RFS 的 HSM 配置中添加 NSIP 地址,然后将配置推送到 HSM。在推送配置之前,您必须知道 HSM 的电子序列号 (ESN)。

要获取 HSM 的 ESN,请在 RFS 上运行以下命令:

root@ns# /opt/nfast/bin/anonkneti <Entrust HSM IP address>

示例:

root@ns# /opt/nfast/bin/anonkneti 10.217.2.112 BD17-C807-58D9 5e30a698f7bab3b2068ca90a9488dc4e6c78d822

ESN 编号为 BD17-C807-58D9。

获得 ESN 编号后,请使用编辑器(如 vi)编辑 RFS 上的 HSM 配置文件。

vi /opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config

hs_clients 部分中,添加以下条目:

# Amount of data in bytes to encrypt with a session key before session key# renegotiation, or 0 for unlimitied. (default=1024\*1024\*8b=8Mb). # datalimit=INT addr=10.217.2.43 clientperm=unpriv keyhash=0000000000000000000000000000000000000000 esn= timelimit=86400 datalimit=8388608 -----

注意: 包含一个或多个连字符作为分隔符,以在同一部分中添加多个条目。

要将配置推送到 HSM,请在 RFS 上运行以下命令:

/opt/nfast/bin/cfg-pushnethsm --address=<Entrust HSM IP address> --force /opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config

示例:

/opt/nfast/bin/cfg-pushnethsm --address=10.217.2.112 --force /opt/nfast/kmdata/hsm-BD17-C807-58D9/config/config

在 RFS 上配置 ADC 的访问权限

要在 RFS 上配置 ADC 的访问权限,请在 RFS 上运行以下命令:

/opt/nfast/bin/rfs-setup --force -g --write-noauth <NetScaler IP address>

示例:

[root@localhost bin]# /opt/nfast/bin/rfs-setup --force -g --write-noauth 10.217.2.43 Adding read-only remote_file_system entries Ensuring the directory /opt/nfast/kmdata/local exists Adding new writable remote_file_system entries Ensuring the directory /opt/nfast/kmdata/local/sync-store exists Saving the new config file and configuring the hardserver Done

通过使用端口 9004 验证 ADC 可以达到 RFS 和 Entrust HSM。

配置启动 hardserver 时自动启动

创建文件,然后重新启动设备。现在,无论何时重新启动设备,如果找到此文件, Hardserver 都会自动启动。

在 shell 提示符下,键入:

touch /var/opt/nfast/bin/thales_hsm_is_enrolled

在命令提示符下,键入:

reboot

在 ADC 上注册 HSM

将目录更改为 /var/opt/nfast/bin。

要将 HSM 详细信息添加到 ADC 配置中,请在 ADC 上运行以下命令:

nethsmenroll --force <Thales_nShield_Connect_ip_address> $(anonkneti <Thales_nShield_Connect_ip_address>)

示例:

root@ns# ./nethsmenroll --force 10.217.2.112 $(anonkneti 10.217.2.112) OK configuring hardserver's nethsm imports

此步骤将以下条目添加到 /var/opt/nfat/kmdata/config/config /config 文件 nethsm_imports 部分的第 # ntoken_ESN 行之后。

… local_module=0 remote_ip=10.217.2.112 remote_port=9004 remote_esn=BD17-C807-58D9 keyhash=5e30a698f7bab3b2068ca90a9488dc4e6c78d822 timelimit=86400 datalimit=8388608 privileged=0 privileged_use_high_port=0 ntoken_esn=

将目录更改为 /var/opt/nfat/bin,然后在 ADC 上运行以下命令:

touch "thales_hsm_is_enrolled"

注意: 要删除已注册到 ADC 上的 HSM,请键入:

./nethsmenroll –-remove <NETHSM-IP>

在 ADC 上添加 RFS 详细信息

要添加 RFS 详细信息,请将目录更改为 /var/opt/nfat/bin/,然后运行以下命令:

./rfs-sync --no-authenticate --setup <rfs_ip_address>

示例:

./rfs-sync --no-authenticate --setup 10.217.2.6 No current RFS synchronization configuration. Configuration successfully written; new config details: Using RFS at 10.217.2.6:9004: not authenticating.

此步骤将以下条目添加到 /var/opt/nfat/kmdata/config/config/config 文件 rfs_sync_client 部分的 # local_ESN 行之后。

…… remote_ip=10.217.2.6 remote_port=9004 use_kneti=no local_esn=

注意: 要删除在 ADC 上注册的 RFS,请键入:

./rfs_sync –remove

将 ADC 与 RFS 同步

要同步所有文件,请将目录更改为 /var/opt/nfat/bin,然后在 ADC 上运行以下命令:

./rfs-sync –-update

此命令从 RFS 上的 /opt/nfaST/kmdata/本地目录中获取所有世界文件、模块文件和关键文件,并将它们放入 ADC 上的 /var/opt/nfaST/kmdat/本地目录中。Citrix 建议您手动复制 World 文件、module_XXXX_XXXX_XXXX 文件,其中 XXXX_XXXX_XXXX 是注册的 HSM 的 ESN,并且仅复制所需的 RSA 密钥和证书文件。

验证 Entrust HSM 是否已成功在 ADC 上注册

将 ADC 与 RFS 同步后,请执行以下操作:

  • 验证本地 Hardserver 是否已启动并正在运行。(Entrust 服务器运行)。
  • 获取已配置 HSM 的状态,并验证 n_modules(模块数)字段和 km 信息字段的值是否为非零。
  • 验证 HSM 是否正确注册并且是否可以由 ADC 使用(状态 0x2 可用)。
  • 使用 sigtest 正确运行加载测试。

将目录更改为 /var/opt/nfat/bin,然后在 shell 提示符下运行以下命令:

root@ns# ./chkserv root@ns# ./nfkminfo root@ns# ./sigtest

有关示例,请参阅 附录

创建 HSM RSA 密钥

只支持 RSA 密钥作为 HSM 密钥。

注意: 如果 RFS 上的 /opt/nfast/kmdata/local 文件夹中已存在密钥,请跳过此步骤。

创建 RSA 密钥、自签名证书和证书签名请求 (CSR)。将 CSR 发送到证书颁发机构以获取服务器证书。

以下示例中创建了以下文件:

  • 嵌入 RSA 密钥:key_embed_2ed5428aaeae1e159bdbd63f25292c7113ec2c78
  • 自签名证书:example_selfcert
  • 证书签名请求:example_req

注意: 严格的 FIPS 140-2 3 级安全世界支持 generatekey 命令。需要管理员卡集 (ACS) 或操作员卡集 (OCS) 来控制许多操作,包括创建密钥和 OCS。运行 generatekey 命令时,系统会提示您插入 ACS 或 OCS 卡。有关严格的 FIPS 140-2 级 3 安全世界的详细信息,请参阅 nShield Connect 用户指南。

以下示例使用 2 级安全世界。在该示例中,这些命令采用粗体字形式。

示例:

[root@localhost bin]# ./generatekey embed size: Key size? (bits, minimum 1024) [1024] > 2048 OPTIONAL: pubexp: Public exponent for RSA key (hex)? [] > embedsavefile: Filename to write key to? [] > example plainname: Key name? [] > example x509country: Country code? [] > US x509province: State or province? [] > CA x509locality: City or locality? [] > Santa Clara x509org: Organisation? [] > Citrix x509orgunit: Organisation unit? [] > NS x509dnscommon: Domain name? [] > www.citrix.com x509email: Email address? [] > example@citrix.com nvram: Blob in NVRAM (needs ACS)? (yes/no) [no] > digest: Digest to sign cert req with? (md5, sha1, sha256, sha384, sha512) [default sha1] > sha512 key generation parameters: operation Operation to perform generate application Application embed verify Verify security of key yes type Key type RSA size Key size 2048 pubexp Public exponent for RSA key (hex) embedsavefile Filename to write key to example plainname Key name example x509country Country code US x509province State or province CA x509locality City or locality Santa Clara x509org Organisation Citrix x509orgunit Organisation unit NS x509dnscommon Domain name www.citrix.com x509email Email address example@citrix.com nvram Blob in NVRAM (needs ACS) no digest Digest to sign cert req with sha512 Key successfully generated. Path to key: /opt/nfast/kmdata/local/key_embed_2ed5428aaeae1e159bdbd63f25292c7113ec2c78 You have new mail in /var/spool/mail/root

结果:

您已经创建了一个 CSR (example_req)、一个自签名证书 (example_selfcert) 和一个嵌入格式的应用程序密钥令牌文件(/opt/nfast/kmdata/local/key_embed_2ed5428aaeae1e159bdbd63f25292c7113ec2c78)

由于 ADC 仅支持简单格式的密钥,因此必须将嵌入密钥转换为简单密钥。

要将嵌入密钥转换为简单密钥,请在 RFS 上运行以下命令:

[root@localhost bin]# ./generatekey -r simple from-application: Source application? (embed, simple) [embed] > embed from-ident: Source key identifier? (c6410ca00af7e394157518cb53b2db46ff18ce29, 2ed5428aaeae1e159bdbd63f25292c7113ec2c78) [default c6410ca00af7e394157518cb53b2db46ff18ce29] > 2ed5428aaeae1e159bdbd63f25292c7113ec2c78 ident: Key identifier? [] > examplersa2048key plainname: Key name? [] > examplersa2048key key generation parameters: operation Operation to perform retarget application Application simple verify Verify security of key yes from-application Source application embed from-ident Source key identifier 2ed5428aaeae1e159bdbd63f25292c7113ec2c78 ident Key identifier examplersa2048key plainname Key name examplersa2048key Key successfully retargetted. Path to key: /opt/nfast/kmdata/local/key_simple_examplersa2048key

重要:

当系统提示输入源密钥标识符时,输入 2ed5428aaeae1e159bdbd63f25292c7113ec2c78 密钥作为嵌入密钥。

结果:

将创建一个带有前缀 key_simple(例如 key_simple_examplersa2048key)的键。

注意: examplersa2048key 是密钥标识符(ident),称为 ADC 上的 HSM 密钥名称。密钥标识符是唯一的。所有简单文件都有前缀 key_simple。

在 ADC 上配置实体

在 ADC 处理流量之前,必须执行以下操作:

  1. 启用功能。
  2. 添加子网 IP (SNIP) 地址。
  3. 将 HSM 密钥添加到 ADC。
  4. 使用 HSM 密钥添加证书密钥对。
  5. 添加虚拟服务器。
  6. 添加服务器对象。
  7. 添加服务。
  8. 将服务绑定到虚拟服务器。
  9. 将证书密钥对绑定到虚拟服务器。
  10. 验证配置。

ADC 上的使能功能

ADC 上必须存在许可证,然后才能启用某项功能。

使用 CLI 启用功能

在命令提示符下,运行以下命令:

enable feature lb enable feature ssl

通过使用 GUI 启用功能

导航到“系统”>“设置”,然后在“模式和功能”组中选择“配置基本功能”,然后选择“SSL 卸载”。

添加子网 IP 地址

有关子网 IP 地址的更多信息,请参阅 配置子网 IP 地址

添加 SNIP 地址并使用 CLI 验证配置

在命令提示符下,运行以下命令:

add ns ip <IPAddress> <netmask> -type SNIP show ns ip

示例:

add ns ip 192.168.17.253 255.255.248.0 -type SNIP Done show ns ip Ipaddress Traffic Domain Type Mode Arp Icmp Vserver State --------- -------------- ---- ---- --- ---- ------- ------ 1) 192.168.17.251 0 NetScaler IP Active Enabled Enabled NA Enabled 2) 192.168.17.252 0 VIP Active Enabled Enabled Enabled Enabled 3) 192.168.17.253 0 SNIP Active Enabled Enabled NA Enabled Done

添加 SNIP 地址并使用 GUI 验证配置

导航到“系统”>“网络”>“IP”,添加 IP 地址,然后选择“IP 类型”作为“子网 IP”。

将 HSM 密钥和证书复制到 ADC

使用安全的文件传输实用程序将密钥 (key_simple_examplersa2048key) 安全地复制到 /var/opt/nfast/kmdata/local 文件夹,并将证书 (example_selfcert) 安全地复制到 ADC 上的 /nsconfig/ssl 文件夹。

在 ADC 上添加密钥

所有键都有一个键-简单的前缀。将密钥添加到 ADC 时,请使用 ident 作为 HSM 密钥名称。例如,如果您添加的密钥是简单的密钥,则 HSM 密钥名称是 XXXX。

重要:

  • HSM 密钥名称必须与您在将嵌入密钥转换为简单密钥格式时指定的 ident 相同。
  • 这些键必须存在于 ADC 的 /var/opt/nfast/kmdata/local/ 目录中。

使用 CLI 添加 HSM 密钥

在 shell 提示符处,运行以下命令:

add ssl hsmKey <hsmKeyName> -key <string>

示例:

add ssl hsmKey examplersa2048key –key key_simple_examplersa2048key Done

通过使用 GUI 添加 HSM 密钥

导航到 “ 流量管理” > “SSL” > “HSM”,然后添加 HSM 密钥。

在 ADC 上添加证书密钥对

有关证书密钥对的信息,请参阅 添加或更新证书密钥对

使用 CLI 添加证书密钥对

在命令提示符下,运行以下命令:

add ssl certKey <certkeyName> -cert <string> -hsmKey <string>

示例:

add ssl certKey key22 -cert example_selfcert -hsmKey examplersa2048key Done

使用 GUI 添加证书密钥对

导航到“流量管理”>“SSL”>“证书”,然后添加证书密钥对。

添加虚拟服务器

有关虚拟服务器的信息,请参阅 SSL 虚拟服务器配置

使用 CLI 配置基于 SSL 的虚拟服务器

在命令提示符下,运行以下命令:

add lb vserver <name> <serviceType> <IPAddress> <port>

示例:

add lb vserver v1 SSL 192.168.17.252 443

使用 GUI 配置基于 SSL 的虚拟服务器

导航到“流量管理”>“负载平衡”>“虚拟服务器”,创建虚拟服务器,然后将协议指定为 SSL。

添加服务器对象

在 ADC 上添加服务器对象之前,请确保已创建后端服务器。以下示例使用 Linux 系统上的内置 python HTTP 服务器模块。

示例:

%python –m SimpleHTTPServer 80

使用 CLI 添加服务器对象

在命令提示符下,运行以下命令:

add server <name> <IPAddress>

示例:

add server s1 192.168.17.246

通过使用 GUI 添加服务器对象

导航到“流量管理”>“负载平衡”>“服务器”,然后添加服务器。

添加服务

有关详细信息,请参阅 配置服务

使用 CLI 配置服务

在命令提示符下,运行以下命令:

add service <name> <serverName> <serviceType> <port>

示例:

add service sr1 s1 HTTP 80

使用 GUI 配置服务

导航到 “ 流量管理” > “负载平衡” > “服务”,然后创建服务。

将服务绑定到虚拟服务器

有关详细信息,请参阅 将服务绑定到 SSL 虚拟服务器

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

在命令提示符下,运行以下命令:

bind lb vserver <name> <serviceName>

示例:

bind lb vserver v1 sr1

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

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 打开虚拟服务器,然后在“服务”窗格中单击以将服务绑定到虚拟服务器。

将证书密钥对绑定到 ADC 上的虚拟服务器

有关详细信息,请参阅 将证书密钥对绑定到 SSL 虚拟服务器

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

在命令提示符下,运行以下命令:

bind ssl vserver <vServerName> -certkeyName <string>

示例:

bind ssl vserver v1 -certkeyName key22 Warning: Current certificate replaces the previous binding

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

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 打开 SSL 虚拟服务器,然后在“高级设置”中单击“SSL 证书”。
  3. 将服务器证书绑定到虚拟服务器。

验证配置

要使用 CLI 查看配置,请执行以下操作:

在命令提示符下,运行以下命令:

show lb vserver <name> show ssl vserver <vServerName>

示例:

show lb vserver v1 v1 (192.168.17.252:443) - SSL Type: ADDRESS State: UP Last state change was at Wed Oct 29 03:11:11 2014 Time since last state change: 0 days, 00:01:25.220 Effective State: UP Client Idle Timeout: 180 sec Down state flush: ENABLED Disable Primary Vserver On Down : DISABLED Appflow logging: ENABLED No. of Bound Services : 1 (Total) 1 (Active) Configured Method: LEASTCONNECTION Current Method: Round Robin, Reason: Bound service's state changed to UP Mode: IP Persistence: NONE Vserver IP and Port insertion: OFF Push: DISABLED Push VServer: Push Multi Clients: NO Push Label Rule: none L2Conn: OFF Skip Persistency: None IcmpResponse: PASSIVE RHIstate: PASSIVE New Service Startup Request Rate: 0 PER_SECOND, Increment Interval: 0 Mac mode Retain Vlan: DISABLED DBS_LB: DISABLED Process Local: DISABLED Traffic Domain: 0 1) sr1 (192.168.17.246: 80) - HTTP State: UP Weight: 1 Done
sh ssl vserver v1 Advanced SSL configuration for VServer v1: DH: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0 Session Reuse: ENABLED Timeout: 120 seconds Cipher Redirect: DISABLED SSLv2 Redirect: DISABLED ClearText Port: 0 Client Auth: DISABLED SSL Redirect: DISABLED Non FIPS Ciphers: DISABLED SNI: DISABLED SSLv2: DISABLED SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: DISABLED TLSv1.2: DISABLED Push Encryption Trigger: Always Send Close-Notify: YES ECC Curve: P_256, P_384, P_224, P_521 1) CertKey Name: key22 Server Certificate 1) Cipher Name: DEFAULT Description: Predefined Cipher Alias Done

要使用 GUI 查看配置,请执行以下操作:

导航到“流量管理”>“负载平衡”>“虚拟服务器”,然后双击 SSL 虚拟服务器将其打开并查看配置。

本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
配置 ADC-Entrust 集成