Citrix ADC

配置adc - trust集成

下面的流程图描述了使用委托HSM与Citrix ADC需要执行的任务:

流程图

根据以上流程图,您可以执行以下任务:

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

配置委托HSM

在trust HSM上指定RFS的IP地址,以便接受RFS推送给它的配置。使用“委托HSM”上的“nShield Connect”前面板执行以下步骤。

在“委托HSM”中指定远程计算机的IP地址

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

启用在HSM上推送远程配置

在trust HSM上指定RFS的IP地址,以便接受RFS推送给它的配置。使用“委托HSM”上的“nShield Connect”前面板执行以下步骤。

在“委托HSM”中指定远程计算机的IP地址

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

将ADC配置为使用HSM

本文档中使用的示例值:

NSIP地址=10.217.2.43

委托HSM IP地址=10.217.2.112

= 10.217.2.6 RFS IP地址

在HSM上添加NSIP地址

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

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

在RFS上执行以下命令获取HSM的ESN:

root@ns#/opt/nfast/bin/anonkneti<委托HSM IP地址><--需要复制-->

例子:

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节中,添加以下条目:

#在会话密钥重新协商之前,使用会话密钥加密的数据字节数,或0表示无限。(默认= 1024 * 1024 * 8 b = 8 mb)。# datelimit =INT addr=10.217.2.43 clientperm=unpriv keyhash=000000000000000000000000000000000000 esn= timelimit=86400 datelimit =8388608 ----- 

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

在RFS上执行以下命令,将配置推送到HSM。

/opt/nfast/bin/cfg-pushnethsm——address=<委托HSM的IP地址>——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设置--force-g--write noauth--需要复制-->

例子:

(root@localhost本)# / opt / nfast / bin / rfs-setup -力- g - write-noauth 10.217.2.43添加只读remote_file_system条目确保目录/ opt / nfast / kmdata /本地存在添加新的可写remote_file_system条目确保目录/ opt / nfast / kmdata /地方/ sync-store存在保存新配置文件和配置hardserver做< !——NeedCopy >

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

配置服务器的自动启动hardserver在启动时

创建一个文件,然后重新启动设备。现在,无论何时重新启动设备,如果找到该文件,则Hardserver自动启动。

在shell提示符处,输入:

触摸/var/opt/nfast/bin/thales_hsm_is_enrolled < !——NeedCopy >

在命令提示符处,输入:

重新启动<--需要复制-->

在ADC上注册HSM

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

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

nethsmenroll——强制$(anonkneti

例子:

root@ns#./nethsmenroll--force 10.217.2.112$(anonkneti 10.217.2.112)OK配置硬盘服务器的nethsm导入<!--NeedCopy-->

此步骤在中的#ntoken_esn=esn行之后添加以下条目nethsm_imports/var/opt/nfast/kmdata/config/config文件的一部分。

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

将目录修改为/var/opt/nfast/bin,并在ADC上执行以下命令:

触摸“thales_hsm_is_enrolled”< !——NeedCopy >

注意:要移除ADC上登记的HSM,请输入:

./nethsmenroll–-卸下--需要复制-->

在ADC上添加RFS详细信息

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

./rfs-sync——no-authenticate——setup  

例子:

./rfs sync--无身份验证--设置10.217.2.6无当前rfs同步配置。配置已成功写入;新配置详细信息:在10.217.2.6:9004使用rfs:未验证。<!--NeedCopy-->

的# local_esn=ESN行之后添加以下条目rfs\u同步\u客户端/var/opt/nfast/kmdata/config/config文件的一部分。

……远程\u ip=10.217.2.6远程\u端口=9004使用\u kneti=无本地\u esn=<--需要复制-->

注意:要删除ADC上登记的RFS,请输入:

./rfs\U同步–删除<!--NeedCopy-->

将ADC与RFS同步

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

./rfs同步–更新<--需要复制-->

此命令从RFS上的/opt/nfast/kmdata/local目录获取所有世界文件、模块文件和密钥文件,并将它们放入ADC上的/var/opt/nfast/kmdata/local目录。Citrix建议您手动复制世界文件、模块XXXX\u XXXX\u XXXX文件,其中XXXX\u XXXX是已注册HSM的ESN,并且仅所需的RSA密钥和证书文件。

验证委托HSM在ADC上注册成功

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

  • 验证本地Hardserver已启动并运行。(委托服务器运行)。
  • 获取配置的hsmm的状态,并验证n_modules(模块数量)字段和km info字段的值是非零的。
  • 验证HSM被ADC正确登记并且是可用的(状态0x2可用)。
  • 负载测试使用sigtest正常运转。

修改目录为/var/opt/nfast/bin,在shell提示下执行以下命令:

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

看到附录了一个例子。

创建HSM RSA Key

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

注意:中已经存在键,请跳过此步骤/ opt / nfast / kmdata /当地RFS上的文件夹。

创建RSA密钥、自签名证书和CSR (certificate Signing Request)。将CSR发送给证书颁发机构以获得服务器证书。

以下文件是在以下示例中创建的:

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

注意:generatekey命令在严格的FIPS 140-2 3级安全世界中支持。需要管理员卡集(administrator card set, ACS)或操作员卡集(operator card set, OCS)来控制许多操作,包括创建密钥和OCS。当你运行generatekey命令,提示插入ACS或OCS卡。有关严格FIPS 140-2 3级安全世界的更多信息,请参阅nShield连接用户指南。

下面的示例使用2级安全世界。在本例中,命令为黑体字。

例子:

[root@localhostbin]#/generatekey嵌入大小:密钥大小?(位,最小1024)[1024]>2048可选:xp:RSA密钥的公共指数(十六进制)?[]>embedsavefile:要将密钥写入的文件名?[]>示例纯名称:密钥名称?[]>示例x509country:国家代码?[]>美国X509省:州还是省?[]>CA X509地点:城市还是地点?[]>圣克拉拉x509org:组织机构?[]>Citrix x509orgunit:组织单位?[]>NS x509dnscommon:域名?[]>m.giftsix.com x509电子邮件:电子邮件地址?[] > example@citrix.comnvram:nvram中的Blob(需要ACS)?(是/否)[否]>摘要:签署证书请求的摘要?(md5,sha1,sha256,SH384,sha512)[默认sha1]>sha512密钥生成参数:执行生成应用程序嵌入验证密钥安全性的操作是类型密钥类型RSA密钥大小2048公钥指数RSA密钥(十六进制)EmbeddeSaveFile文件名将密钥写入示例plainname密钥名称示例X509国家/地区代码US X509省州或省CA X509地区城市或地区Santa Clara x509org组织Citrix x509orgunit组织单位NS X509DNSCOCommon域名www.Citrix.com X509电子邮件地址example@citrix.comnvram中的nvram Blob(需要ACS)没有摘要摘要,无法使用成功生成的sha512密钥签署证书请求。密钥路径:/opt/nfast/kmdata/local/Key\u embed\u 2ED5428AAEAE159BDBD63F25292C7113EC2C78您有新的mail-in/var/spool/mail/root<!--NeedCopy-->

结果:

您已经以嵌入格式(/opt/nfast/kmdata/local/key\u embed_2ed5428aaeae159bd63f25292c7113ec2c78)创建了CSR(示例_req)、自签名证书(示例_selfcert)和应用程序密钥令牌文件

因为ADC只支持简单格式的密钥,所以必须将嵌入密钥转换为简单密钥。

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

[root@localhost bin]# ./generatekey -r simple from-application: Source application?[embed] > embed from-ident:源密钥标识符?(c6410ca00af7e394157518cb53b2db46ff18ce29, 2ed5428aaeae1e159bdbd63f25292c7113ec2c78) [default c6410ca00af7e394157518cb53b2db46ff18ce29] > 2ed5428aaeae1e159bdbd63f25292c7113ec2c78 ident:密钥标识?[] > examplersa2048key plainname:密钥名称?[] > examplersa2048key密钥生成参数:operation retarget应用操作application simple verify验证密钥的安全性yes from-application源应用embed from-ident源密钥标识符2ed5428aaeae1e159bdbd63f25292c7113ec2c78 ident密钥标识符examplersa2048key plainname密钥名称examplersa2048key成功重定向密钥。key路径:/opt/nfast/kmdata/local/key_simple_examplersa2048key 

重要的是:

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

结果:

将创建一个前缀为key_simple的密钥(例如key_simple_examplersa2048key)。

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

在ADC上配置实体

在ADC可以处理流量之前,您必须完成以下操作:

  1. 启用的特性。
  2. 添加子网IP (SNIP)。
  3. 向ADC中添加HSM键。
  4. 使用HSM密钥添加证书密钥对。
  5. 添加虚拟服务器。
  6. 添加服务器对象。
  7. 添加一个服务。
  8. 将服务绑定到虚拟服务器。
  9. 将证书密钥对绑定到虚拟服务器。
  10. 验证配置。

启用ADC上的功能

在启用某个特性之前,必须在ADC上提供许可。

通过使用CLI启用功能

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

启用特性lb启用特性SSL 

使用GUI启用功能

导航到系统>设置,在模式和特点组,选择配置基本特征,然后选择SSL卸载

添加子网IP地址

有关子网IP地址的详细信息,请参见配置子网IP地址

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

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

添加ns ip-键入SNIP show ns ip<--需要复制-->

例子:

添加ns ip 192.168.17.253 255.255.248.0类型剪做展示ns ip Ipaddress交通模式Arp Icmp Vserver状态域类型  --------- -------------- ---- ---- --- ---- ------- ------ 1) 192.168.17.251 0 NetScaler IP活跃启用启用NA启用2)192.168.17.252 0 VIP活动使启用启用启用3)192.168.17.253 0剪活跃Enabled Enabled NA Enabled Done 

添加SNIP地址,并通过GUI验证配置结果

导航到系统>网络> ip,添加一个IP地址,选择作为子网IP的IP类型

将HSM密钥和证书复制到ADC

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

在ADC上添加密钥

所有的键都有一个简单的键前缀。在向ADC添加密钥时,使用标识作为HSM密钥名称。例如,添加的密钥为key_simple_XXXX,则HSM密钥名称为XXXX。

重要的是:

  • HSM密钥名称必须与您在将嵌入密钥转换为简单密钥格式时指定的标识符相同。
  • 钥匙必须在/var/opt/nfast/kmdata/local/ADC上的目录。

使用CLI添加HSM密钥

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

add ssl hsmKey  -key  

例子:

添加ssl hsmKey examplersa2048key–key key_simple_examplersa2048key Done<--需要复制-->

通过使用GUI添加一个HSM键

导航到流量管理> SSL > HSM,并添加一个HSM键。

在ADC上添加证书密钥对

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

2 .通过命令行添加证书密钥对

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

add ssl certKey  -cert  -hsmKey  

例子:

add ssl certKey key22 -cert example_selfcert -hsmKey examplersa2048key Done 

通过GUI添加证书密钥对

导航到流量管理> SSL >证书,并添加证书密钥对。

添加虚拟服务器

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

通过命令行配置ssl虚拟服务器

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

add lb vserver     

例子:

添加lb vserver v1 SSL 192.168.17.252 443<--需要复制-->

通过图形界面配置ssl虚拟服务器

导航到流量管理>负载均衡>虚拟服务器,创建虚拟服务器,并指定协议为SSL。

添加服务器对象

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

例子:

%python -m SimpleHTTPServer 80 

使用CLI添加服务器对象

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

add server   

例子:

添加服务器s1 192.168.17.246 

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

导航到流量管理>负载均衡>服务器,并添加服务器。

添加一个服务

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

该任务指导管理员通过命令行配置服务

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

添加服务<--需要复制-->

例子:

添加服务sr1 s1 HTTP 80 

使用GUI配置服务

导航到流量管理>负载均衡>业务,创建服务。

将服务绑定到虚拟服务器

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

该任务指导管理员通过命令行,为虚拟服务器绑定服务

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

绑定lb vserver<--需要复制-->

例子:

绑定lb vserver v1 sr1<!--NeedCopy-->

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

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

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

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

该任务指导管理员通过命令行,为虚拟服务器绑定证书-密钥对

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

bind ssl vserver  -certkeyName  

例子:

绑定ssl vserver v1-certkeyName key22警告:当前证书将替换以前的绑定<!--NeedCopy-->

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

  1. 导航到流量管理>负载均衡>虚拟服务器
  2. 打开SSL虚拟服务器,在高级设置点击SSL证书
  3. 绑定服务器证书到虚拟服务器。

验证配置

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

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

show lb vserver  show ssl vserver  

例子:

显示磅vserver v1 v1 (192.168.17.252:443) - SSL类型:地址状态:去年状态改变是在2014年10月29日03:11:11结婚以来最后的状态变化:0天,00:01:25.220有效状态:客户端闲置超时:180秒刷新状态:启用禁用主要vserver:禁用演示applow日志:没有启用。绑定的服务:1(总)1(主动)配置方法:LEASTCONNECTION当前方法:循环赛,原因:绑定服务的状态改变模式:IP持久性:没有Vserver IP和端口插入:从推动:残疾人推Vserver:推动多客户:没有把标签规则:没有L2Conn:从跳过持久性:没有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 / opt / Client . sh ssl vserver v1高级ssl配置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 Cipher: 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:预定义Cipher Alias Done 

使用GUI查看配置信息。

导航到流量管理>负载均衡>虚拟服务器,双击SSL虚拟服务器打开并查看配置。

配置adc - trust集成