SSL 常见问题解答
基本问题
对 VPX 实例的 HTTPS 访问 GUI 失败。我如何获得访问权限
对 GUI 的 HTTPS 访问需要证书密钥对。在 NetScaler 设备上,证书密钥对会自动绑定到内部服务。在 MPX 或 SDX 设备上,默认密钥大小为 1024 字节,在 VPX 实例上,默认密钥大小为 512 字节。但是,现今的大多数浏览器都不接受小于 1024 字节的密钥。因此,通过 HTTPS 访问 VPX 配置实用程序将被阻止。
Citrix 建议您安装至少 1024 个字节的证书密钥对,然后将其绑定到内部服务,以便对配置实用程序进行 HTTPS 访问。或者,将 ns-server-certificate
更新为 1024 个字节。您可以使用 HTTP 访问配置实用程序或 CLI 来安装证书。
如果我向 MPX 设备添加许可证,证书密钥对绑定将丢失。我该如何解决这个问题
如果 MPX 设备启动时不存在许可证,并且稍后添加许可证并重新启动设备,则可能会丢失证书绑定。重新安装证书并将其绑定到内部服务
Citrix 建议您在启动设备之前安装适当的许可证。
为 SSL 交易设置安全渠道涉及哪些步骤
为 SSL 交易设置安全渠道涉及以下步骤:
-
客户端向服务器发送安全通道的 HTTPS 请求。
-
选择协议和密码后,服务器将其证书发送给客户端。
-
客户端检查服务器证书的真实性。
-
如果任何检查失败,客户端将显示相应的反馈。
-
如果支票通过或者客户决定在检查失败的情况下继续,客户端将创建一个临时的一次性密钥。此密钥称为 预主密 钥,客户端使用服务器证书的公钥对此密钥进行加密。
-
服务器在收到预主密钥后,使用服务器的私钥对其进行解密并生成会话密钥。客户端还从预主机密钥生成会话密钥。因此,客户端和服务器现在都有一个共同的会话密钥,用于加密和解密应用程序数据。
我明白 SSL 是一个 CPU 密集型过程。与 SSL 进程相关的 CPU 成本是多少
以下两个阶段与 SSL 过程相关联:
-
使用公钥和私钥技术进行初始握手和安全渠道设置。
-
使用对称密钥技术批量数据加密。
上述两个阶段都可能会影响服务器性能,并且出于以下原因,它们需要大量的 CPU 处理:
-
最初的握手涉及公私密钥密码学,由于密钥大小(1024 位、2048 位、4096 位),这是非常耗费 CPU 的密集型。
-
数据的加密/解密也在计算上昂贵,这取决于必须加密或解密的数据量。
SSL 配置的各种实体有哪些
SSL 配置具有以下实体:
- 服务器证书
- 证书颁发机构 (CA) 证书
- 密码套件,它为以下任务指定协议:
- 初始密钥交换
- 服务器和客户端验证
- 批量加密算法
- 消息验证
- 客户端身份验证
- CRL
- SSL 证书密钥生成工具,使您能够创建以下文件:
- 证书请求
- 自签名证书
- RSA 密钥
- DH 参数
我想使用 NetScaler 设备的 SSL 卸载功能。接收 SSL 证书的各种选项有哪些
必须先收到 SSL 证书,然后才能在 NetScaler 设备上配置 SSL 设置。您可以使用以下任意方法来接收 SSL 证书:
-
向授权证书颁发机构 (CA) 请求证书。
-
使用现有的服务器证书。
-
在 NetScaler 设备上创建证书密钥对。
注意: 此证书是由 NetScaler 设备生成的测试 Root-CA 签名的测试证书。浏览器不接受测试 Root-CA 签署的测试证书。浏览器抛出警告消息,指出无法对服务器的证书进行身份验证。
- 出于测试目的以外的任何目的,必须提供有效的 CA 证书和 CA 密钥才能对服务器证书进行签名。
SSL 设置的最低要求是什么
配置 SSL 设置的最低要求如下:
- 获取证书和密钥。
- 创建负载平衡 SSL 虚拟服务器。
- 将 HTTP 或 SSL 服务绑定到 SSL 虚拟服务器。
- 将证书密钥对绑定到 SSL 虚拟服务器。
SSL 的各个组件有什么限制
SSL 组件有以下限制:
- SSL 证书的位大小:4096。
- SSL 证书的数量:取决于设备上的可用内存。
- 最多链接的中间 CA SSL 证书:每个链 9 个。
- CRL 吊销:取决于设备上的可用内存。
NetScaler 设备上的端到端数据加密涉及哪些步骤
NetScaler 设备上的服务器端加密过程涉及的步骤如下:
-
客户端连接到在安全站点的 NetScaler 设备上配置的 SSL VIP。
-
收到安全请求后,设备会解密请求并应用第 4-7 层内容切换技术和负载平衡策略。然后,它为请求选择最佳可用的后端 Web 服务器。
-
NetScaler 设备与所选服务器创建 SSL 会话。
-
建立 SSL 会话后,设备会加密客户端请求并使用安全 SSL 会话将其发送到 Web 服务器。
-
当设备收到来自服务器的加密响应时,它会解密并重新加密数据。然后,它使用客户端 SSL 会话将数据发送到客户端。
NetScaler 设备的多路复用技术使设备能够重复使用与 Web 服务器建立的 SSL 会话。因此,设备避免了 CPU 密集型密钥交换(称为 完全握手)。此过程减少了服务器上 SSL 会话的总数,并保持端到端的安全性。
证书和密钥
我可以将证书和密钥文件放在任何位置吗?有没有建议存储这些文件的位置
您可以将证书和密钥文件存储在 NetScaler 设备或本地计算机上。但是,Citrix 建议您将证书和密钥文件存储在 NetScaler 设备的 /nsconfig/ssl
目录中。/etc
目录存在于 NetScaler 设备的闪存中。此操作提供了可移植性,并有助于备份和恢复设备上的证书文件。
注意: 确保证书和密钥文件存储在同一目录中。
NetScaler 设备支持的证书密钥的最大大小是多少
运行版本早于 9.0 的软件版本的 NetScaler 设备支持的最大证书密钥大小为 2048 位。9.0 及更高版本支持最大证书密钥大小为 4096 位。此限制适用于 RSA 证书。
MPX 设备支持从 512 位到以下大小的证书:
-
虚拟服务器上的 4096 位服务器证书
-
服务上的 4096 位客户端证书
-
4096 位 CA 证书(包括中间证书和根证书)
-
后端服务器上的 4096 位证书
-
4096 位客户端证书(如果在虚拟服务器上启用了客户端身份验证)
虚拟设备支持从 512 位到以下大小的证书:
-
虚拟服务器上的 4096 位服务器证书
-
服务上的 4096 位客户端证书
-
4096 位 CA 证书(包括中间证书和根证书)
-
后端服务器上的 4096 位证书
-
2048 位客户端证书(如果在虚拟服务器上启用了客户端身份验证)
NetScaler 设备支持的 DH 参数的最大大小是多少
NetScaler 设备支持的最大值为 2048 的 DH 参数。从 14.1-25.x 版本开始,最大限制增加到 4096 位。
注意:
对于 Cavium 平台,最大限制为 2048 位。
NetScaler 设备支持的最大证书链长度,即链中的最大证书数是多少
发送服务器证书消息时,NetScaler 设备可以在链中发送最多 10 个证书。最大长度的链包括服务器证书和九个中间 CA 证书。
NetScaler 设备支持哪些不同的证书和密钥格式
NetScaler 设备支持以下证书和密钥格式:
- 隐私增强邮件 (PEM)
- 区分编码规则 (DER)
我可以在 NetScaler 设备上安装的证书和密钥数量是否有限制
不。可以安装的证书和密钥数量仅受 NetScaler 设备上可用内存的限制。
我已将证书和密钥文件保存在本地计算机上。我想使用 FTP 协议将这些文件传输到 NetScaler 设备。是否有将这些文件传输到 NetScaler 设备的首选模式
是。如果使用 FTP 协议,则必须使用二进制模式将证书和密钥文件传输到 NetScaler 设备。
注意: 默认情况下,FTP 处于禁用状态。Citrix 建议使用 SCP 协议传输证书和密钥文件。配置实用程序隐式使用 SCP 连接到设备。
证书和密钥的默认目录路径是什么
证书和密钥的默认目录路径是 ‘/nsconfig/ssl’。
添加证书和密钥对时,如果我没有指定证书和密钥文件的绝对路径,会发生什么情况
添加证书密钥对时,请指定证书和密钥文件的绝对路径。如果不指定,ADC 设备将搜索这些文件的默认目录,然后尝试将它们加载到内核。默认目录是 /nsconfig/ssl
。例如,如果设备的 /nsconfig/ssl
目录中有 cert1024.pem 和 rsa1024.pem 文件,则以下两个命令都成功:
add ssl certKey cert1 -cert cert1204.pem -key rsa1024.pem
<!--NeedCopy-->
add ssl certKey cert1 -cert /nsconfig/ssl/cert1204.pem -key /nsconfig/ssl/rsa1024.pem
<!--NeedCopy-->
我已经配置了高可用性设置。我想在安装程序中实现 SSL 功能。在高可用性设置中,我必须如何处理证书和密钥文件
在高可用性设置中,必须将证书和密钥文件存储在主设备和辅助 NetScaler 设备上。在主设备上添加 SSL 证书密钥对之前,两台设备上的证书和密钥文件的目录路径必须相同。
nCipher nShield® HSM
与 nCipher nShield® HSM 集成时,在将 NetScaler 设备添加到 HA 时,我们是否必须记住任何特定配置
在 HA 中的两个节点上配置相同的 nCipher 设备。不同步 HA 中的 nCipher 配置命令。有关 nCipher nShield® HSM 的必备条件的信息,请参阅必备条件。
我们是否必须将这两个设备单独集成到 nCipher nShield® HSM 和 RFS?我们是否需要在 HA 设置之前还是之后完成此操作
您可以在 HA 设置之前或之后完成集成。如果集成是在 HA 设置之后完成的,则在配置辅助节点之前在主节点上导入的密钥不会同步到辅助节点。因此,Citrix 建议在 HA 设置之前进行 nCipher 集成。
我们是否需要将密钥导入主和辅助 NetScaler 设备,还是密钥从主节点同步到辅助节点
如果在形成 HA 之前在两台设备上集成了 nCipher,则在集成过程中,这些密钥将自动从 RFS 同步。
鉴于 HSM 不在 NetScaler 设备上,而是在 nCipher 上,那么当节点出现故障并被替换时,密钥和证书会发生什么情况
如果节点出现故障,您可以通过在新节点上集成 nCipher 将密钥和证书同步到新节点。然后,运行以下命令:
sync ha files ssl
force ha sync
<!--NeedCopy-->
如果在集成 nCipher 的过程中同步了密钥,则会同步并添加证书。
密码
什么是空密码
没有加密的密码被称为空密码。例如,NULL-MD5 是一种空密码器。
默认情况下是否为 SSL VIP 或 SSL 服务启用空密码
不。默认情况下,SSL VIP 或 SSL 服务不启用空密码。
删除空密码的程序是什么
要从 SSL VIP 中删除空密码,请运行以下命令:
bind ssl cipher <SSL_VIP> REM NULL
<!--NeedCopy-->
要从 SSL 服务中删除空密码器,请运行以下命令:
bind ssl cipher <SSL_Service> REM NULL -service
<!--NeedCopy-->
NetScaler 设备支持哪些不同的密码别名
要列出设备支持的密码别名,请在命令提示符处键入:
sh cipher
<!--NeedCopy-->
显示 NetScaler 设备的所有预定义密码的命令是什么
要显示 NetScaler 设备的所有预定义密码,请在 CLI 中键入以下内容:
show ssl cipher
<!--NeedCopy-->
显示 NetScaler 设备单个密码器详细信息的命令是什么
要显示 NetScaler 设备的单个密码的详细信息,请在 CLI 中键入:
show ssl cipher <Cipher_Name/Cipher_Alias_Name/Cipher_Group_Name>
<!--NeedCopy-->
示例:
show cipher SSL3-RC4-SHA
1) Cipher Name: SSL3-RC4-SHA
Description: SSLv3 Kx=RSA Au=RSA Enc=RC4(128)
Mac=SHA1
Done
<!--NeedCopy-->
添加 NetScaler 设备的预定义密码有什么意义
添加 NetScaler 设备的预定义密码会导致空密码被添加到 SSL VIP 或 SSL 服务中。
是否有可能在不解除密码与 NetScaler 设备上的密码组的绑定的情况下更改密码的顺序
是。可以在不从自定义密码组中解开密码器绑定的情况下更改密码的顺序。但是,您无法更改内置密码组中的优先级。要更改绑定到 SSL 实体的密码的优先级,请首先将密码与虚拟服务器、服务或服务组解除绑定。
注意: 如果绑定到 SSL 实体的密码组为空,则 SSL 握手将失败,因为没有协商密码。密码组必须至少包含一个密码器。
NetScaler 设备是否支持 ECDSA
以下 NetScaler 平台支持 ECDSA。有关受支持的版本的详细信息,请参阅 NetScaler 设备上提供的 Ciphers 中的表 1 和表 2。
- 配备 N3 芯片的 NetScaler MPX 和 SDX 设备
- NetScaler MPX 5900/8900/15000/26000
- NetScaler SDX 8900/15000
- NetScaler VPX 设备
NetScaler VPX 设备是否在前端支持 AES-GCM/SHA2 密码
是的,NetScaler VPX 设备支持 AES-GCM/SHA2 密码。有关支持版本的详细信息,请参阅 NetScaler 设备上提供的密码。
Certificates(证书)
客户端证书中的判别名称是否可用于用户会话的长度
是。在用户会话期间,您可以在后续请求中访问客户端证书的可分辨名称。也就是说,即使在 SSL 握手完成且浏览器不会再次发送证书之后。使用以下示例配置中详细说明的变量和分配:
示例:
add ns variable v2 -type "text(100)"
add ns assignment a1 -variable "$v2" -set "CLIENT.SSL.CLIENT_CERT.SUBJECT.TYPECAST_NVLIST_T('=','/').VALUE("CN")"
add rewrite action act1 insert_http_header subject "$v2" // example: to insert the distinguished name in the header
add rewrite policy pol1 true a1
add rewrite policy pol2 true act1
bind rewrite global pol1 1 next -type RES_DEFAULT
bind rewrite global pol2 2 next -type RES_DEFAULT
set rewrite param -undefAction RESET
<!--NeedCopy-->
为什么我需要绑定服务器证书
绑定服务器证书是启用 SSL 配置以处理 SSL 事务的基本要求。
要将服务器证书绑定到 SSL VIP,请在 CLI 上键入:
bind ssl vserver <vServerName> -certkeyName <cert_name>
<!--NeedCopy-->
要将服务器证书绑定到 SSL 服务,请在 CLI 上键入:
bind ssl service <serviceName> -certkeyName <cert_name>
<!--NeedCopy-->
我可以将多少证书绑定到 SSL VIP 或 SSL 服务
在 NetScaler VPX、MPX/SDX (N3) 和 MPX/SDX 14000 FIPS 设备上,如果禁用 SNI,则可以将两个证书绑定到 SSL 虚拟服务器或 SSL 服务。证书必须是 RSA 和 ECDSA 类型的各一个证书。如果启用 SNI,则可以绑定多个类型为 RSA 或 ECDSA 的服务器证书。在 NetScaler MPX (N2) 或 MPX 9700 FIPS 设备上,如果禁用 SNI,则只能绑定一个 RSA 类型的证书。如果启用 SNI,则只能绑定 RSA 类型的多个服务器证书。
如果我解除绑定或覆盖服务器证书会发生什么情况
解除绑定或覆盖服务器证书时,使用现有证书创建的所有连接和 SSL 会话都将终止。覆盖现有证书时,将显示以下消息:
ERROR:
Warning: Current certificate replaces the previous binding.
<!--NeedCopy-->
如何在 NetScaler 设备上安装中间证书并链接到服务器证书
有关安装中间证书的信息,请参阅 http://support.citrix.com/article/ctx114146 上的文章。
当我尝试在 NetScaler 上安装证书时,为什么出现“资源已存在”错误
有关解决“资源已存在”错误的说明,请参阅 http://support.citrix.com/article/CTX117284 上的文章。
我想在 NetScaler 设备上创建服务器证书来测试和评估该产品。创建服务器证书的过程是什么
执行以下步骤创建测试证书。
注意: 使用此过程创建的证书不能用于对所有用户和浏览器进行身份验证。使用证书进行测试后,必须获得由授权的根证书颁发机构签名的服务器证书。
要创建自签名服务器证书:
-
要创建根 CA 证书,请在 CLI 上键入:
create ssl rsakey /nsconfig/ssl/test-ca.key 1024 create ssl certreq /nsconfig/ssl/test-ca.csr -keyfile /nsconfig/ssl/test-ca.key Enter the required information when prompted, and then type the following command: create ssl cert /nsconfig/ssl/test-ca.cer /nsconfig/ssl/test-ca.csr ROOT_CERT -keyfile /nsconfig/ssl/test-ca.key <!--NeedCopy-->
-
执行以下过程创建服务器证书并使用刚创建的根 CA 证书对其进行签名
-
要创建请求和密钥,请在 CLI 上键入:
create ssl rsakey /nsconfig/ssl/test-server.key 1024 create ssl certreq /nsconfig/ssl/test-server.csr -keyfile /nsconfig/ssl/test-server.key <!--NeedCopy-->
-
出现提示时输入所需信息。
-
要创建序列号文件,请在 CLI 中键入:
shell # echo '01' > /nsconfig/ssl/serial.txt # exit <!--NeedCopy-->
-
要创建由在步骤 1 中创建的根 CA 证书签名的服务器证书,请在 CLI 中键入:
create ssl cert /nsconfig/ssl/test-server.cer /nsconfig/ssl/test-server.csr SRVR_CERT -CAcert /nsconfig/ssl/test-ca.cer -CAkey /nsconfig/ssl/test-ca.key -CAserial /nsconfig/ssl/serial.txt <!--NeedCopy-->
-
要创建 NetScaler 证书密钥对,这是保存 SSL 握手和批量加密的服务器证书信息的内存对象,请在 CLI 中键入:
add ssl certkey test-certkey -cert /nsconfig/ssl/test-server.cer -key /nsconfig/ssl/test-server.key <!--NeedCopy-->
-
要将证书密钥对绑定到 SSL 虚拟服务器,请在 CLI 上键入:
bind ssl vserver <vServerName> -certkeyName <cert_name> <!--NeedCopy-->
-
我收到了安装了 NetScaler 软件版本 9.0 的 NetScaler 设备。我注意到设备上有额外的许可证文件。从 NetScaler 软件 9.0 版开始,许可策略有什么变化吗
是。从 NetScaler 软件版本 9.0 开始,该设备可能没有一个许可证文件。许可证文件的数量取决于 NetScaler 软件的发行版本。例如,如果您安装了高级版,则可能需要额外的许可证文件才能实现各种功能的全部功能。但是,如果您安装了高级版,则设备只有一个许可证文件。
如何从互联网信息服务 (IIS) 导出证书
有很多方法,但是通过使用以下方法导出适当的网站证书和私钥。必须在实际的 IIS 服务器上执行此过程。
-
打开互联网信息服务 (IIS) 管理器管理工具。
-
展开网站节点,找到要通过 NetScaler 设备提供服务的支持 SSL 的网站。
-
右键单击此网站然后单击属性。
-
单击目录安全选项卡,然后在窗口的安全通信部分中,选择查看证书框。
-
单击详细信息选项卡,然后单击复制到文件。
-
在欢迎使用证书导出向导页面上,单击下一步。
-
选择是,导出私钥,然后单击下一步。
注意: 必须导出私钥才能在 NetScaler 上运行 SSL 卸载。
-
确保选中了“个人信息交换-PKCS #12”单选按钮,然后 只 选中“如果可能的话将所有证书包括在身份验证路径中”复选框。单击下一步。
-
输入密码然后单击“下一步”。
-
输入文件名和位置,然后单击“下一步”。为文件赋予 .PFX 的扩展名。
-
单击完成。
如何转换 PKCS #12 证书并将其安装在 NetScaler 上
-
将导出的.PFX 证书文件移至可以将其复制到 NetScaler 设备的位置。也就是说,允许通过 SSH 访问 NetScaler 设备的管理接口的计算机。使用 SCP 之类的安全复制实用程序将证书复制到设备。
-
访问 BSD shell 并将证书(例如 Cert.pfx)转换为 .PEM 格式:
root@ns# openssl pkcs12 -in cert.PFX -out cert.PEM <!--NeedCopy-->
-
要确保转换后的证书采用正确的 x509 格式,请验证以下命令不产生错误:
root@ns# openssl x509 -in cert.PEM -text <!--NeedCopy-->
-
验证证书文件是否包含私钥。首先发出以下命令:
root@ns# cat cert.PEM Verify that the output file includes an RSA PRIVATE KEY section. -----BEGIN RSA PRIVATE KEY----- Mkm^s9KMs9023pz/s... -----END RSA PRIVATE KEY----- <!--NeedCopy-->
以下是 RSA 私钥部分的另一个示例:
Bag Attributes 1.3.6.1.4.1.311.17.2: <No Values> localKeyID: 01 00 00 00 Microsoft CSP Name: Microsoft RSA SChannel Cryptographic Provider friendlyName: 4b9cef4cc8c9b849ff5c662fd3e0ef7e_76267e3e-6183-4d45-886e-6e067297b38f Key Attributes X509v3 Key Usage: 10 -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,43E7ACA5F4423968 pZJ2SfsSVqMbRRf6ug37Clua5gY0Wld4frPIxFXyJquUHr31dilW5ta3hbIaQ+Rg ... (more random characters) v8dMugeRplkaH2Uwt/mWBk4t71Yv7GeHmcmjafK8H8iW80ooPO3D/ENV8X4U/tlh 5eU6ky3WYZ1BTy6thxxLlwAullynVXZEflNLxq1oX+ZYl6djgjE3qg== -----END RSA PRIVATE KEY----- <!--NeedCopy-->
以下是服务器证书部分:
Bag Attributes localKeyID: 01 00 00 00 friendlyName: AG Certificate subject=/C=AU/ST=NSW/L=Wanniassa/O=Dave Mother Asiapacific/OU=Support/CN=davemother.food.lan issuer=/DC=lan/DC=food/CN=hotdog -----BEGIN CERTIFICATE----- MIIFiTCCBHGgAwIBAgIKCGryDgAAAAAAHzANBgkqhkiG9w0BAQUFADA8MRMwEQYK ... (more random characters) 5pLDWYVHhLkA1pSxvFjNJHRSIydWHc5ltGyKqIUcBezVaXyel94pNSUYx07NpPV/ MY2ovQyQZM8gGe3+lGFum0VHbv/y/gB9HhFesog= -----END CERTIFICATE----- <!--NeedCopy-->
以下是中级 CA 证书部分:
Bag Attributes: <Empty Attributes> subject=/DC=lan/DC=food/CN=hotdog issuer=/DC=lan/DC=food/CN=hotdog -----BEGIN CERTIFICATE----- MIIESDCCAzCgAwIBAgIQah20fCRYTY9LRXYMIRaKGjANBgkqhkiG9w0BAQUFADA8 ... (more random characters) Nt0nksawDnbKo86rQcNnY5xUs7c7pj2zxj/IOsgNHUp5W6dDI9pQoqFFaDk= -----END CERTIFICATE----- <!--NeedCopy-->
根据导出证书的身份验证路径,可能会跟随其他中间 CA 证书。
-
在文本编辑器中打开 .PEM 文件
-
找到 .PEM 文件的第一行和以下行的第一个实例,然后复制这两行以及它们之间的所有行:
-----END CERTIFICATE----- Note: Make sure that last copied line is the first -----END CERTIFICATE----- line in the .PEM file. <!--NeedCopy-->
-
将复制的行粘贴到新文件中。将新文件称为直观的东西,例如 cert-key.pem。此证书密钥对适用于托管 HTTPS 服务的服务器。此文件必须同时包含前面的示例中标记为 RSA 私钥的部分和标记为 SERVER CREDER 的部分。
注意: 证书密钥对文件包含私钥,必须保持安全。
-
找到以 —–BEGIN CERTIFICATE—– 开头并以 —END CERTIFICATE—– 结尾的任何后续部分,然后将每个此类部分复制到单独的新文件。
这些部分对应于已包含在身份验证路径中的受信任 CA 的证书。必须将这些部分复制并粘贴到这些证书的新单个文件中。例如,必须将前面示例的中间 CA 证书部分复制并粘贴到新文件中)。
对于原始文件中的多个中间 CA 证书,请按文件中显示的顺序为每个中间 CA 证书创建文件。跟踪(使用适当的文件名)证书的出现顺序,因为它们必须在后面的步骤中以正确的顺序链接在一起。
-
将证书密钥文件 (cert-key.pem) 和任何其他 CA 证书文件复制到 NetScaler 设备上的 /nsconfig/ssl 目录中。
-
退出 BSD 外壳并访问 NetScaler 提示符。
-
按照“在设备上安装证书密钥文件”中的步骤,在设备上载后安装密钥/证书。
如何转换 PKCS #7 证书并将其安装在 NetScaler 设备上
您可以使用 OpenSSL 将 PKCS #7 证书转换为 NetScaler 设备可以识别的格式。该过程与 PKCS #12 证书的过程相同,只是您使用不同的参数调用 OpenSSL。转换 PKCS #7 证书的步骤如下:
-
使用安全复制实用程序(例如 SCP)将证书复制到设备。
-
将证书(例如,cert.P7B)转换为 PEM 格式:
openssl pkcs7 -inform DER -in cert.p7b -print_certs -text -out cert.pem <!--NeedCopy-->
-
按照 PKCS #12 证书答案中所述的步骤 3 到 7 进行操作。 注意:在将转换后的 PKCS #7 证书加载到设备之前,请验证证书是否包含私钥,完全如 PKCS #12 过程的步骤 3 所述。PKCS #7 证书,特别是从 IIS 导出的证书,通常不包含私钥。
当我使用 bind 密码命令将密码器绑定到虚拟服务器或服务时,我会看到错误消息“命令已弃用。”
将密码绑定到虚拟服务器或服务的命令已更改。
使用 bind ssl vserver <vsername> -ciphername <ciphername>
命令将 SSL 密码绑定到 SSL 虚拟服务器。
使用 bind ssl service <serviceName> -ciphername <ciphername>
命令将 SSL 密码绑定到 SSL 服务。
注意: 新的密码和密码组将添加到现有列表中,而不是替换。
为什么我不能创建一个密码组并使用 add 密码命令将密码绑定到它
在版本 10 中,add 密码命令功能已更改。该命令只创建一个密码组。要向组中添加密码,请使用 bind 密码命令。
OpenSSL
如何使用 OpenSSL 在 PEM 和 DER 之间转换证书
要使用 OpenSSL,您必须有 OpenSSL 软件的正常安装程序,并能够从命令行运行 OpenSSL。
x509 证书和 RSA 密钥可以以多种不同的格式存储。
两种常见的格式是:
- DER(主要由 Java 和 Macintosh 平台使用的二进制格式)
- PEM(带有页眉和页脚信息的 DER base64 表示形式,主要由 UNIX 和 Linux 平台使用)。
除了根证书和任何中间证书外,密钥和相应的证书也可以存储在单个 PKCS #12 (.P12, .PFX) 文件中。
过程
使用 OpenSSL 命令在格式之间进行转换,如下所示:
-
要将证书从 PEM 转换为 DER:
x509 -in input.crt -inform PEM -out output.crt -outform DER <!--NeedCopy-->
-
要将证书从 DER 转换为 PEM:
x509 -in input.crt -inform DER -out output.crt -outform PEM <!--NeedCopy-->
-
要将密钥从 PEM 转换为 DER:
rsa -in input.key -inform PEM -out output.key -outform DER <!--NeedCopy-->
-
要将密钥从 DER 转换为 PEM:
rsa -in input.key -inform DER -out output.key -outform PEM <!--NeedCopy-->
注意: 如果您要导入的密钥是使用支持的对称密码加密的,则系统会提示您输入密码。
注意: 要将密钥转换为过时的 NET(Netscape 服务器)格式或从中转换密钥,请根据需要将 NET 替换 PEM 或 DER。存储的密钥使用弱无加盐的 RC4 对称密码进行加密,因此需要密码短语。空白密码是可以接受的。
系统限制
要记住的重要数字是什么
-
创建证书请求:
- 请求文件名:最多 63 个字符
- 密钥文件名:最多 63 个字符
- PEM 密码短语(对于加密密钥):最多 31 个字符
- 通用名称:最多 63 个字符
- 城市:最多 127 个字符
- 组织名称:最多 63 个字符
- 州/省名称:最多 63 个字符
- 电子邮件地址:最多 255 个字符
- 组织单位:最多 63 个字符
- 挑战密码:最多 20 个字符
- 公司名称:最多 127 个字符
-
创建证书:
- 证书文件名:最多 63 个字符
- 证书请求文件名:最多 63 个字符
- 密钥文件名:最多 63 个字符
- PEM 密码短语:最多 31 个字符
- 有效期:最长 3650 天
- CA 证书文件名:最多 63 个字符
- CA 密钥文件名:最多 63 个字符
- PEM 密码短语:最多 31 个字符
- CA 序列号文件:最多 63 个字符
-
创建并安装服务器测试证书:
- 证书文件名:最多 31 个字符
- 完全限定域名:最多 63 个字符
- 创建 Diffie-Hellman (DH) 密钥:
- DH 文件名(带路径):最多 63 个字符
- DH 参数大小:最大 2048 位(从 14.1-25.x 版本开始,最大限制增加到 4096 位)
注意:
对于 Cavium 平台,最大限制为 2048 位。
从 14.1-25.x 版开始,您可以在一些基于 Intel Coleto 和 Intel Lewisburg 的平台上以及仅在软件中执行 SSL 处理的平台上创建高达 4096 位的 DH 密钥。早些时候,大小限制为 2048 位。
要创建大于 2048 位的 DH 密钥,请使用 NetScaler 外壳提示符下的
OpenSSL
命令。有关基于 Intel Coleto 和 Intel Lewisburg 平台的更多信息,请参阅 Diffie-Hellman 参数生成和使用 DHE 实现 PFS。
-
导入 PKCS12 密钥:
- 输出文件名:最多 63 个字符
- PKCS12 文件名:最多 63 个字符
- 导入密码:最多 31 个字符
- PEM 密码短语:最多 31 个字符
- 验证 PEM 密码短语:最多 31 个字符
- 导出 PKCS12
- PKCS12 文件名:最多 63 个字符
- 证书文件名:最多 63 个字符
- 密钥文件名:最多 63 个字符
- 导出密码:最多 31 个字符
- PEM 密码短语:最多 31 个字符
- CRL 管理:
- CA 证书文件名:最多 63 个字符
- CA 密钥文件名:最多 63 个字符
- CA 密钥文件密码:最多 31 个字符
- 索引文件名:最多 63 个字符
- 证书文件名:最多 63 个字符
- 创建 RSA 密钥:
- 密钥文件名:最多 63 个字符
- 密钥大小:最大 4096 位
- PEM 密码短语:最多 31 个字符
- 验证密码短语:最多 31 个字符
- 更改高级 SSL 设置:
- 最大 CRL 内存大小:最大 1024 MB
- 加密触发器超时(10 毫秒刻度):最多 200 个
- 加密触发数据包计数:最多 50
- OCSP 缓存大小:最大 512 MB
- 安装证书:
- 证书密钥对名称:最多 31 个字符
- 证书文件名:最多 63 个字符
- 私钥文件名:最多 63 个字符
- 密码:最多 31 个字符
- 通知期限:最多 100
- 创建密码组:
- 密码组名称:最多 39 个字符
- 创建 CRL:
- CRL 名称:最多 31 个字符
- CRL 文件:最多 63 个字符
- URL:最多 127 个字符
- 基本 DN:最多 127 个字符
- 绑定 DN:最多 127 个字符
- 密码:最多 31 个字符
- 天数:最多 31
- 创建 SSL 策略:
- 名称:最多 127 个字符
- 创建 SSL 操作:
- 名称:最多 127 个字符
- 创建 OCSP 响应程序:
- 名称:最多 32 个字符
- URL:最多 128 个字符
- 批处理深度:最大 8
- 批处理延迟:最大 10000
- 按时生产的倾斜:最大 86400
- 请求超时:最长 120000
- 创建虚拟服务器:
- 名称:最多 127 个字符
- 重定向 URL:最多 127 个字符
- 客户端超时:最长 31536000 秒
- 创建服务:
- 名称:最多 127 个字符
- 空闲超时(秒): 客户端:最大 31536000 服务器:最大 31536000
- 创建服务组:
- 服务组名称:最多 127 个字符
- 服务器 ID:最大 4294967295
- 空闲超时(秒): 客户端:最大值 31536000 服务器:最大 31536000
- 创建监视器:
- 名称:最多 31 个字符
- 创建服务器:
- 服务器名称:最多 127 个字符
- 域名:最多 255 个字符
- 解决重试:最长 20939 秒