创建证书签名请求并在 Citrix ADC 设备上使用 SSL 证书
要安装、链接和更新证书,请参阅安装、链接和更新证书。
执行以下步骤创建证书并将其绑定到 SSL 虚拟服务器。
- 创建私钥。
- 创建证书签名请求 (CSR)。
- 将 CSR 提交给证书颁发机构。
- 创建证书密钥对。
- 将证书密钥对绑定到 SSL 虚拟服务器
下图说明了工作流程。
创建私钥
私钥是数字证书中最重要的部分。根据定义,此密钥不能与任何人共享,必须安全地保存在 Citrix ADC 设备上。使用公钥加密的任何数据只能通过使用私钥解密。
您从 CA 接收的证书仅对用于创建 CSR 的私钥有效。将证书添加到 Citrix ADC 设备时需要密钥。
重要提示:限制对私钥的访问权限。任何有权访问您的私钥的人都可以解密您的 SSL 数据。
注意:如果路径包含在密钥名称中,则允许的 SSL 密钥名称的长度包括绝对路径名的长度。
使用 CLI 创建 RSA 私钥
在命令提示符下,键入:
create ssl rsakey [-exponent ( 3 | F4 )] [-keyform (DER | PEM )] [-des | -des3 | -aes256] {-password } [-pkcs8]
示例:
create rsakey RSA_Key 2048 -aes256 -password 123456 -pkcs8
通过使用 GUI 创建 RSA 私钥
导航到流量管理 > SSL > SSL 文件。
在SSL 文件页面中,单击密钥选项卡,选择创建 RSA 密钥。
输入以下参数的值,然后单击创建。
- 密钥文件名-RSA 密钥文件的名称和路径(可选)。/nsconfig/ssl/ 是默认路径。
- 密钥大小-RSA 密钥的大小(以位为单位)。可以从 512 位到 4096 位。
- 公共指数值-RSA 密钥的公共指数。指数是密码算法的一部分,是创建 RSA 密钥所必需的。
- 密钥格式-在设备上存储 RSA 密钥文件的格式。
- PEM 编码算法-使用 AES 256、DES 或 Triple-DES (DES3) 算法加密生成的 RSA 密钥。默认情况下,私钥是未加密的。
- PEM 密码短语-如果私钥已加密,请输入密钥的密码短语。
创建证书签名请求
使用私钥创建证书签名请求并提交给证书颁发机构。
使用 CLI 创建证书签名请求
在命令提示符下,键入:
create ssl certreq -keyFile | -fipsKeyName ) [-keyForm (DER | PEM) {-PEMPassPhrase }] -countryName -stateName -organizationName -organizationUnitName -localityName -commonName -emailAddress {-challengePassword } -companyName -digestMethod ( SHA1 | SHA256 )
示例:
create ssl certreq priv_csr_sha256 -keyfile priv_2048_2 -keyform PEM -countryName IN -stateName Karnataka -localityName Bangalore -organizationName Citrix -organizationUnitName NS -digestMethod SHA256
使用 GUI 创建证书签名请求
- 导航到流量管理>SSL。
在SSL 文件页面中,单击CSR选项卡,然后单击创建证书签名请求 (CSR)。
输入以下参数的值。
请求文件名-证书签名请求 (CSR) 的名称和路径(可选)。/nsconfig/ssl/ 是默认路径。
密钥文件名-用于创建证书签名请求的私钥的名称和路径(可选),该请求随后将成为证书密钥对的一部分。私钥可以是 RSA 密钥,也可以是 ECDSA 密钥。密钥必须存在于设备的本地存储中。/nsconfig/ssl 是默认路径。
- Key Format(密钥格式)
- PEM 密码短语(用于加密密钥)
- 摘要方法
- 组织名称
- 州或省
- 国家/地区
- 主题备用名称:主题备用名称 (SAN) 是 X.509 的扩展名,允许使用 SubjectAltName 字段将各种值与安全证书相关联。这些值称为 “主题备用名称” (SAN)。名称包括:
- IP 地址(带 “IP:” 前缀示例:IP: 198.51.10.5 IP: 192.0.2.100)
- DNS 名称(前缀为 “DNS:” 示例:DNS: www.example.com DNS: www.Example.org DNS: www.Example.org DNS: www.example.net)
备注:
证书中的使用者备用名称 (SAN) 字段允许您将多个值(如域名和 IP 地址)与单个证书关联。换句话说,您可以使用一个证书来保护多个域名,例如:www.example.com、www.example1.com、www.example2.com 等。
某些浏览器(例如 Google Chrome 浏览器)不再支持证书签名请求 (CSR) 中的公用名称。他们在所有公开信任的证书中强制执行 SAN。
- 公用名称:将您指定的名称与 SSL 握手期间服务器证书中的公用名称进行比较。如果两个名称匹配,握手成功。如果公用名称不匹配,则将为服务或服务组指定的公用名称与证书中的 SAN 字段值进行比较。如果与其中一个值匹配,握手是成功的。例如,如果防火墙后面有两台服务器,而其中一台服务器欺骗另一台服务器的身份,则此配置特别有用。如果未选中公用名称,则如果 IP 地址匹配,则接受任一服务器提供的证书。
- 单击创建。
向证书颁发机构提交 CSR
大多数证书颁发机构 (CA) 接受通过电子邮件提交的证书。CA 将向您提交 CSR 的电子邮件地址返回有效证书。
添加证书密钥对
安装从证书颁发机构收到的签名证书。
注意:默认情况下,证书和密钥存储在 /nsconfig/ssl 目录中。如果证书或密钥存储在任何其他位置,则必须提供 Citrix ADC 设备上文件的绝对路径。
使用 CLI 添加证书密钥对
add ssl certKey -cert [(-key [-password]) | -fipsKey ] [-inform ( DER | PEM )] [] [-expiryMonitor ( ENABLED | DISABLED ) [-notificationPeriod ]] show ssl certKey []
示例:
add ssl certKey rsa_certkeypair -cert server_cert.pem -key RSA_Key.pem -password ssl -expiryMonitor ENABLED -notificationPeriod 30 Done
使用 GUI 添加证书密钥对
导航到流量管理 > SSL > 证书 > 服务器。
输入以下参数的值,然后单击安装。
证书密钥对名称-证书和私钥对的名称。
证书文件名-从证书颁发机构收到的签名证书。
密钥文件名-用于形成证书密钥对的私钥文件的名称和路径(可选)。
将证书密钥对绑定到 SSL 虚拟服务器
重要提示:在将证书绑定到 SSL 虚拟服务器之前,将任何中间证书链接到此证书。有关链接证书的信息,请参阅创建证书链。
用于处理 SSL 事务的证书必须绑定到接收 SSL 数据的虚拟服务器。如果有多个虚拟服务器接收 SSL 数据,则必须将有效的证书密钥对绑定到每个服务器。
使用 CLI 将 SSL 证书密钥对绑定到虚拟服务器
在命令提示符处,键入以下命令以将 SSL 证书密钥对绑定到虚拟服务器并验证配置:
bind ssl vserver -certkeyName -CA -skipCAName show ssl vserver
示例:
结合ssl vs vs1 -certkeyName cert2 ca -skipCANameDone sh ssl vs vs1 Advanced SSL configuration for VServer vs1: 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 OCSP Stapling: DISABLED HSTS: DISABLED IncludeSubDomains: NO HSTS Max-Age: 0 SSLv2: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: DISABLED TLSv1.2: DISABLED Push Encryption Trigger: Always Send Close-Notify: YES Strict Sig-Digest Check: DISABLED ECC Curve: P_256, P_384, P_224, P_521 1) CertKey Name: cert1 CA Certificate OCSPCheck: Optional CA_Name Sent 2) CertKey Name: cert2 CA Certificate OCSPCheck: Optional CA_Name Skipped 1) Cipher Name: DEFAULT Description: Default cipher list with encryption strength >= 128bit Done
使用 GUI 将 SSL 证书密钥对绑定到虚拟服务器
导航到流量管理 > 负载平衡 > 虚拟服务器,然后打开 SSL 虚拟服务器。在“证书”部分中单击。
单击箭头以选择证书密钥对。
从列表中选择证书密钥对。
将证书密钥对绑定到虚拟服务器。
故障排除
以下是两种常见的错误场景,其中包含指向相应的解决方案文章的链接。
如果在 Citrix ADC 设备上安装证书密钥对时出现以下错误,请参阅https://support.citrix.com/article/CTX134233
错误:私钥无效,或此私钥所需的PEM 密码短语。
如果在 Citrix ADC 设备上安装 SSL 证书时看到以下错误,请参阅https://support.citrix.com/article/CTX137887
错误:证书无效。