旧版 SSL 配置文件
注意:
Citrix 建议使用增强型配置文件而不是旧配置文件。有关增强型配置文件基础设施的信息,请参阅 SSL 配置文件基
重要:
将 SSL 配置文件绑定到 SSL 虚拟服务器。不要将 DTLS 配置文件绑定到 SSL 虚拟服务器。有关 DTLS 配置文件的信息,请参阅 DTL 配置文件。
您可以使用 SSL 配置文件指定 NetScaler 如何处理 SSL 流量。该配置文件是 SSL 实体(例如虚拟服务器、服务和服务组)的 SSL 参数设置的集合,易于配置且非常灵活。不限制您仅配置一组全局参数。您可以创建多个全局参数集(配置文件),并将不同的集分配给不同的 SSL 实体。SSL 配置文件分为两类:
- 前端配置文件,包含适用于前端实体的参数。也就是说,它们适用于从客户端接收请求的实体。
- 后端配置文件,包含适用于后端实体的参数。也就是说,它们适用于向服务器发送客户端请求的实体。
与 TCP 或 HTTP 配置文件不同,SSL 配置文件是可选的。因此,没有默认 SSL 配置文件。同一个配置文件可以在多个实体中重复使用。如果实体未附加配置文件,则在全局级别设置的值适用。对于动态学习的服务,应用当前的全局值。
下表列出了每个配置文件中的参数。
前端轮廓 | 后端配置文件 |
---|---|
cipherRedirect、cipherURL | denySSLReneg |
clearTextPort* | encryptTriggerPktCount |
clientAuth、clientCert | nonFipsCiphers |
denySSLReneg | pushEncTrigger |
dh、dhFile、dhCount | pushEncTriggerTimeout |
dropReqWithNoHostHeader | pushFlag |
encryptTriggerPktCount | quantumSize |
eRSA、eRSACount | serverAuth |
insertionEncoding | commonName |
nonFipsCiphers | sessReuse, sessTimeout |
pushEncTrigger | SNIEnable |
pushEncTriggerTimeout | ssl3 |
pushFlag | sslTriggerTimeout |
quantumSize | strictCAChecks |
redirectPortRewrite | tls1 |
sendCloseNotify | - |
sessReuse, sessTimeout | - |
SNIEnable |
- |
ssl3 | - |
sslRedirect | - |
sslTriggerTimeout | - |
strictCAChecks | - |
tls1、tls11、tls12 | - |
* ClearTextPort 参数仅适用于 SSL 虚拟服务器。
如果您尝试设置不属于配置文件的参数,则会出现错误消息。例如,如果您尝试在后端配置文件中设置 clientAuth 参数。
某些 SSL 参数,例如 CRL 内存大小、OCSP 缓存大小、UndeFaction Control 和 undeFaction 数据,不属于上述任何配置文件,因为这些参数独立于实体。
SSL 配置文件支持以下操作:
- 添加-在 NetScaler 上创建 SSL 配置文件。指定配置文件是前端还是后端。前端是默认设置。
- 设置-修改现有配置文件的设置。
- 取消设置-将指定参数设置为其默认值。如果您未指定任何参数,则会显示一条错误消息。如果您在实体上取消设置配置文件,则该配置文件将解除与该实体的绑定。
- 移除-删除配置文件。任何实体正在使用的配置文件都无法删除。清除配置会删除所有实体。因此,配置文件也会被删除。
- 显示-显示 NetScaler 上可用的所有配置文件。如果指定了配置文件名称,则会显示该配置文件的详细信息。如果指定了实体,则会显示与该实体关联的配置文件。
使用 CLI 创建 SSL 配置文件
- 要添加 SSL 配置文件,请键入:
add ssl profile <name> [-sslProfileType ( BackEnd | FrontEnd )]
<!--NeedCopy-->
- 要修改现有配置文件,请键入:
set ssl profile <name>
<!--NeedCopy-->
- 要取消设置现有配置文件,请键入:
unset ssl profile <name> [-dh] [-dhFile] [-dhCount] [-eRSA]…
<!--NeedCopy-->
- 要取消实体中现有配置文件的设置,请键入:
unset ssl vserver <vServerName> –sslProfile
<!--NeedCopy-->
- 要删除现有配置文件,请键入:
rm ssl profile <name>
<!--NeedCopy-->
- 要显示现有配置文件,请键入:
sh ssl profile <name>
<!--NeedCopy-->
使用 GUI 创建 SSL 配置文件
导航到“系统”>“配置文件”,选择“SSL 配置文件”选项卡,然后创建 SSL 配置文件。
对客户端证书验证启用更严格的控制
如果只有一个 root-CA 颁发了有效的中间 CA 证书,则 NetScaler 设备会接受这些证书。也就是说,如果只将 root-CA 证书绑定到虚拟服务器,并且 root-CA 验证了与客户端证书一起发送的任何中间证书,则设备信任证书链,握手成功。
但是,如果客户端在握手中发送了一系列证书,则只有在该证书绑定到 SSL 虚拟服务器时,才能使用 CRL 或 OCSP 响应程序对中间证书进行验证。因此,即使其中一个中间证书被吊销,握手也是成功的。作为握手的一部分,SSL 虚拟服务器会发送绑定到它的 CA 证书列表。为了进行更严格的控制,您可以将 SSL 虚拟服务器配置为仅接受绑定到该虚拟服务器的某个 CA 证书已签名的证书。为此,必须启用绑定到虚拟服务器的 SSL 配置文件中的 ClientAuthUseBoundCAChain
设置。如果绑定到虚拟服务器的 CA 证书之一尚未签署客户端证书,握手将失败。
例如,假设两个客户端证书 clientcert1 和 clientcert2 分别由 int-ca-a 和 int-ca-B 的中间证书签名。中间证书由根证书 root-CA 签名。int-ca-a 和 root-CA 绑定到 SSL 虚拟服务器。在默认情况下(禁用 ClientAuthUseBoundCAChain),将接受 clientcert1 和 clientcert2。但是,如果启用了 ClientAuthUseBoundCAChain,NetScaler 设备将仅接受 clientcert1。
使用 CLI 对客户端证书验证启用更严格的控制
在命令提示符处,键入: set ssl profile <name> -ClientAuthUseBoundCAChain Enabled
使用 GUI 对客户端证书验证启用更严格的控制
- 导航到“系统”>“配置文件”,选择“SSL 配置文件”选项卡,然后创建 SSL 配置文件,或选择现有配置文件。
- 选择 使用绑定 CA 链启用客户端身份验证。