导入和转换 SSL 文件
现在,即使无法通过 FTP 访问远程主机,也可以从远程主机导入 SSL 资源,例如证书、私钥、CRL 和 DH 密钥。此功能在限制对远程主机的 shell 访问的环境中特别有用。在 /nsconfig/ssl 中创建默认文件夹,如下所示:
- 对于证书文件:/nsconfig/ssl/certfile
- 对于私钥:/nsconfig/ssl/keyfile
- 对于 CRL:/var/netscaler/ssl/crlfile
- 对于 DH 密钥:/nsconfig/ssl/dhfile
支持从 HTTP 和 HTTPS 服务器导入。但是,如果文件位于需要客户端证书身份验证才能访问的 HTTPS 服务器上,则导入会失败。
注意:
导入命令未存储在配置 (ns.conf) 文件中,因为重新启动后重新导入文件可能会导致错误。
导入证书文件
您可以使用 CLI 和 GUI 从远程主机导入文件(资源)。
使用 CLI 从远程主机导入证书文件
在命令提示符下,键入:
import ssl certFile [<name>] [<src>]
<!--NeedCopy-->
示例:
import ssl certfile my-certfile http://www.example.com/file_1
<!--NeedCopy-->
show ssl certfile
Name : my-certfile
URL : http://www.example.com/file_1
<!--NeedCopy-->
要删除证书文件,请使用 rm ssl certFile
命令,该命令仅接受“名称”参数。
使用 CLI 从远程主机导入密钥文件
在命令提示符下,键入:
import ssl keyFile [<name>] [<src>]
<!--NeedCopy-->
示例:
import ssl keyfile my-keyfile http://www.example.com/key_file
<!--NeedCopy-->
show ssl keyfile
Name : my-keyfile
URL : http://www.example.com/key_file
<!--NeedCopy-->
要删除密钥文件,请使用 rm ssl keyFile
命令,该命令仅接受“名称”参数。
使用 CLI 从远程主机导入 CRL 文件
在命令提示符下,键入:
import ssl crlFile [<name>] [<src>]
<!--NeedCopy-->
要删除 CRL 文件,请使用 rm ssl crlFile
命令,该命令仅接受 <name> 参数。
示例:
import ssl crlfile my-crlfile http://www.example.com/crl_file
show ssl crlfile
Name : my-crlfile
URL : http://www.example.com/crl_file
<!--NeedCopy-->
使用 CLI 从远程主机导入 DH 文件
在命令提示符下,键入:
import ssl dhFile [<name>] [<src>]
<!--NeedCopy-->
示例:
import ssl dhfile my-dhfile http://www.example.com/dh_file
show ssl dhfile
Name : my-dhfile
URL : http://www.example.com/dh_file
<!--NeedCopy-->
要删除 DH 文件,请使用 rm ssl dhFile
命令,该命令仅接受 <name> 参数。
使用 GUI 导入 SSL 资源
导航到“流量管理”>“SSL”>“导入”,然后选择相应的选项卡。
导入 PKCS #8 和 PKCS #12 证书
如果您想使用网络中其他安全服务器或应用程序上已经拥有的证书和密钥,可以将其导出,然后将其导入 NetScaler 设备。您可能需要先转换导出的证书和密钥,然后才能将其导入 NetScaler 设备。
有关如何从网络中的安全服务器或应用程序导出证书的详细信息,请参阅要从中导出的服务器或应用程序的文档。
注意:
要在 NetScaler 设备上安装,密钥和证书名称不能包含除 UNIX 文件系统支持的字符以外的空格或特殊字符。保存导出的密钥和证书时,请遵循相应的命名惯例。
证书和私钥对通常以 PKCS #12 格式发送。该设备支持证书和密钥的 PEM 和 DER 格式。要将 PKCS #12 转换为 PEM 或 DER,或者将 PEM 或 DER 转换为 PKCS #12,请参阅本页后面的“转换 SSL 证书进行导入或导出”部分。
NetScaler 设备不支持 PKCS #8 格式的 PEM 密钥。但是,您可以使用 OpenSSL 接口将这些密钥转换为支持的格式,您可以从 CLI 或配置实用程序访问该接口。在转换密钥之前,您需要验证私钥是否采用 PKCS #8 格式。PKCS #8 格式的密钥通常以以下文本开头:
-----BEGIN ENCRYPTED PRIVATE KEY-----
leuSSZQZKgrgUQ==
-----END ENCRYPTED PRIVATE KEY-----
<!--NeedCopy-->
从 CLI 打开 OpenSSL 接口
- 使用 SSH 客户端(例如 PuTTY)打开与设备的 SSH 连接。
- 使用管理员凭据登录到该设备。
- 在命令提示符处,键入 shell。
- 在 shell 提示符下键入
openssl
。
从 GUI 中打开 OpenSSL 界面
导航到 流量管理 > SSL ,然后在工具组中选择 OpenSSL 接口。
使用 OpenSSL 接口将不受支持的 PKCS #8 密钥格式转换为加密支持的密钥格式
在 OpenSSL 提示符处,键入以下命令之一,具体取决于不支持的密钥格式是 RSA 还是 ECDSA 类型:
OpenSSL>rsa- in <PKCS#8 Key Filename> -des3 -out <encrypted Key Filename>
OpenSSL>ec -in <PKCS#8 Key Filename> -des3 -out <encrypted Key Filename>
<!--NeedCopy-->
用于将不受支持的密钥格式转换为受支持的密钥格式的参数
- PKCS #8 密钥文件名: 不兼容的 PKCS #8 私钥的输入文件名。
- 加密密钥文件名: PEM 格式的兼容加密私钥的输出文件名。
- 未加密的密钥文件名: PEM 格式的兼容未加密私钥的输出文件名。
转换 SSL 证书以进行导入或导出
NetScaler 设备支持 SSL 证书的 PEM 和 DER 格式。其他应用程序,例如客户端浏览器和某些外部安全服务器,需要各种公钥加密标准 (PKCS) 格式。设备可以将 PKCS #12 格式转换为 PEM 或 DER 格式以将证书导入设备,也可以将 PEM 或 DER 转换为 PKCS #12 以导出证书。为了提高安全性,导入文件的转换可以包括使用 DES 或 DES3 算法对私钥进行加密。
注意:
如果您使用 GUI 导入 PKCS #12 证书,并且密码包含美元符号 ($)、反引号 (`) 或转义 () 字符,则导入可能会失败。如果是,则会出现“错误:密码无效”消息。如果您必须在密码中使用特殊字符,请务必在密码前面加上转义字符 (),除非所有导入都是使用 CLI 执行的。
使用 CLI 转换证书的格式
在命令提示符下,键入以下命令:
convert ssl pkcs12 <outfile> [-import [-pkcs12File <inputFilename>] [-des | -des3] [-export [-certFile <inputFilename>] [-keyFile <inputFilename>]]
<!--NeedCopy-->
在操作过程中,系统会提示您输入导入密码或导出密码。对于加密文件,还会提示您输入密码。
示例:
convert ssl pkcs12 Cert-Import-1.pem -import -pkcs12File Cert-Import-1.pfx -des
convert ssl pkcs12 Cert-Client-1.pfx -export -certFile Cert-Client-1 -keyFile Key-Client-1
<!--NeedCopy-->
使用 GUI 转换证书的格式
-
导航到 流量管理 > SSL ,然后在 工具 组中选择 导入 PKCS #12。
-
在“输出文件名”字段中指定 PEM 证书名称 。
-
浏览到本地计算机或设备上 PFX 证书的位置。
-
单击确定。
-
单击“管理证书 /密钥 /CSR”以查看转换后的 PEM 文件。
-
您可以查看上载的 PFX 文件和转换后的 PEM 文件。
-
导航到 SSL > 证书 > 服务器证书 ,然后单击“安装”。
-
指定 证书密钥对名称。
-
浏览到 PEM 文件的位置。
-
出现提示时指定密码。
-
单击安装。
-
将证书密钥对绑定到 SSL 虚拟服务器。