本指南向您展示如何在 NetScaler(以前作为 Citrix ADC 销售的负载均衡器和应用交付控制器)上生成 CSR(证书签名请求)。您将创建一个 RSA 私钥,构建带有匹配的可分辨名称和主题备用名称条目的 CSR,复制编码后的请求,并将其发送给您的证书颁发机构。相同的流程适用于当前 14.1 LTS 版本以及 13.1 版本的 NetScaler GUI,13.1 版本的维护终止日期为 2026 年 9 月 15 日,生命周期终止日期为 2027 年 9 月 15 日;文末的可选 CLI 部分适用于任何现代版本。
关于名称的说明:该产品最初名为 NetScaler,在 2018 年更名为 Citrix ADC,随后在 2022 年 10 月,Cloud Software Group 将 NetScaler 分拆为独立品牌时,又重新更名为 NetScaler。您可能仍会在较旧的固件、菜单和文档中看到”Citrix ADC”字样;下面的 CSR 步骤对两个名称都是一样的。
以具有向 /nsconfig/ssl/ 写入权限的用户身份登录到 NetScaler 设备(MPX、SDX、VPX 或 CPX),然后按顺序执行以下步骤。
步骤 1:创建 RSA 私钥
NetScaler 将私钥保存为 /nsconfig/ssl/ 中的一个文件,并在构建 CSR 时,以及后续安装已签发证书时,通过名称引用它。首先创建密钥:
- 在 GUI 中,转到Configuration > Traffic Management > SSL > SSL Files。
- 打开SSL Keys选项卡并单击Create RSA Key。
填写Create RSA Key窗口:
- Key Filename:密钥文件的名称,例如 yourdomain-2026.key。默认情况下,NetScaler 会将其写入 /nsconfig/ssl/。
- Key Size (bits):2048 是当前所有公共 CA 都接受的最低要求。仅当您的安全策略要求更大的密钥时,才选择 3072 或 4096;代价是 TLS 握手会略微加重。
- Public Exponent Value:F4 (0x10001),这是几乎所有网络上的 RSA 证书都使用的标准值。
- Key Format:PEM。
- PEM Encoding Algorithm:如需未加密的密钥,请留空。下拉菜单提供 AES 256、DES 和 DES3 选项;由于 DES 和 DES3 是过时的算法,AES 256 是这三者中唯一现代的选择。无论您选择哪一个,NetScaler 都会要求您在每次重启以及每次引用该密钥时输入(并重新输入)密码短语,这在您自行管理的设备上很少值得这么做。除非您的策略另有规定,否则请将其留空。
- PEM Passphrase 和 Confirm PEM Passphrase:仅当您选择了上述其中一种加密算法时才需要填写。
单击OK,然后单击Close。密钥现已存在于设备的 /nsconfig/ssl/ 中,可以绑定到 CSR。
如果您更倾向于使用 ECDSA 密钥(更小、更快,并且受所有当前浏览器支持),请使用 CLI:create ssl ecdsakey yourdomain-2026.key -curve P_256。ECDSA P-256 是常见的选择;如果需要更大的曲线,则可选择 P-384。
步骤 2:打开 Create CSR 对话框
仍在Configuration > Traffic Management > SSL > SSL Files下,打开CSRs选项卡,然后单击Create Certificate Signing Request (CSR)。将打开Create Certificate Signing Request (CSR)窗口。
步骤 3:填写文件和密钥字段
- Request File Name:CSR 文件的名称,例如 yourdomain-2026.csr。默认情况下,NetScaler 会将其写入 /nsconfig/ssl/。
- Key Filename:单击Browse,将来源下拉菜单切换到Appliance,然后选择您在步骤 1 中创建的密钥(例如 yourdomain-2026.key)。单击Select,然后单击Open。
- Key Format:PEM。
- PEM Passphrase (For Encrypted Key):仅当 RSA 密钥设置了密码短语时才需要填写。否则留空。
- Digest Method:选择SHA256。SHA-1 已被弃用,所有公共 CA 都会拒绝它;请勿选择它。
步骤 4:填写可分辨名称字段
每个字段中仅使用标准 ASCII 字符;非拉丁字母或带重音符号的字符会导致请求出错:
- Country:选择您所在组织注册地的两字母 ISO 国家代码(例如 US、GB、DE)。
- State or Province:完整的州或省名称(例如 Washington,而不是 WA)。
- Organization Name:您公司的完整法定名称,须与注册信息完全一致。OV 和 EV 证书必须填写此项。对于域名验证(DV)证书,此字段会被忽略,因此填写一个简短的占位符即可。
- Organization Unit:部门标签,例如 IT。CA/浏览器论坛已逐步淘汰公共证书中的此属性,因此如果表单允许,请将其留空。
- City or Locality:您所在组织注册地的完整城市名称(例如 Seattle,而不是 SEA)。
- Common Name:您要保护的完全限定域名(FQDN),例如 www.example.com。对于通配符证书,请在顶级域名前加上星号,例如 *.example.com。
- Email Address:可选。公共 CA 不再将此项用于 SSL/TLS 签发;您可以留空。
- Challenge Password 和 Company Name:可选的旧属性。公共 CA 会忽略这两项;请留空。
步骤 5:添加主题备用名称(SAN)
现代浏览器和客户端(Chromium、Firefox、Safari、.NET、Java、Go)仅根据主题备用名称扩展来验证主机名;自 2017 年起,Common Name 就不再用于信任判定。对于单一名称的订单,公共 CA 会自动将 CN 复制到一个 SAN 条目中,因此仅有 CN 的请求仍然可以签发,但如果您需要在一张证书上包含多个主机名(例如 example.com 和 www.example.com,或多域名证书),则必须明确添加这些名称。
- 打开对话框中的Subject Alternative Name (SAN)部分。
- 为每个主机名添加一个条目,前缀为 DNS:,例如 DNS:www.example.com 和 DNS:example.com。
- 对于基于 IP 的访问(对公共证书来说很少见),请改用 IP: 前缀,例如 IP:192.0.2.10。公共 CA 只会针对它们能够验证的 IP 进行签发。NetScaler 在这里有一点需要注意:该设备仅处理基于 DNS 的 SAN 值,因此 IP 条目仍会包含在 CSR 及签发的证书中,但设备在将证书与传入请求进行匹配时不会使用它。
如果您的版本中缺少Subject Alternative Name (SAN)字段,该命令的 CLI 版本在每个版本中都可以使用(请参阅本指南末尾的CLI 替代方案)。
步骤 6:生成 CSR
仔细核对每个字段,然后单击Create(较旧版本为OK)。单击Close。NetScaler 会将 CSR 写入设备上的 /nsconfig/ssl/,并将匹配的私钥保存在其旁边。
步骤 7:复制 CSR 并提交给您的 CA
- 转到Configuration > Traffic Management > SSL。
- 在主页面上,在Tools下,单击Manage Certificates / Keys / CSRs。
- 在列表中找到您的 yourdomain-2026.csr 文件,然后单击View。
CSR 是一段 base64 文本,看起来像这样:
-----BEGIN CERTIFICATE REQUEST-----
MIIDXjCCAkYCAQAwgZQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9u
... (many lines of base64) ...
-----END CERTIFICATE REQUEST-----
选中整个区块,包括 -----BEGIN CERTIFICATE REQUEST----- 和 -----END CERTIFICATE REQUEST----- 这两行,将其复制并粘贴到订单表单的 CSR 字段中。等待 CA 验证请求并签发证书。当 SSL 文件送达您的收件箱后,请按照如何在 NetScaler 上安装 SSL 证书完成部署。
提交前检查 CSR(可选)
在将请求发送给您的 CA 之前,值得确认一下 Common Name、SAN 条目和密钥大小。将请求的内容粘贴到 SSL Dragon 的CSR 解码器中,即可读取所有字段。确认 Common Name 与客户端将使用的主机名一致,并确认每个所需的名称都出现在主题备用名称列表中。在这个阶段发现错误修复起来成本很低;一旦签发后再发现错误,就意味着需要重新签发。
通过 CLI 生成 CSR(可选)
如果您更喜欢使用命令行(或者您的版本在 GUI 中隐藏了 SAN 字段),请通过 SSH 连接到设备,并运行相应的命令。请将名称和字段值替换为您自己的:
create ssl rsakey /nsconfig/ssl/yourdomain-2026.key 2048 -exponent F4
create ssl certReq /nsconfig/ssl/yourdomain-2026.csr
-keyFile /nsconfig/ssl/yourdomain-2026.key
-countryName US
-stateName Washington
-organizationName "Example Inc"
-localityName Seattle
-commonName www.example.com
-subjectAltName "DNS:www.example.com DNS:example.com"
-digestMethod SHA256
关于这些值的说明:
- 续行符(
)是为了便于阅读;如果您愿意,也可以将create ssl certReq命令写成单独一行来运行。 -subjectAltName接受一个用引号括起来、以空格分隔各条目的字符串;格式为 DNS:hostname(或 IP:address)。- 如需使用 ECDSA 密钥,请将
create ssl rsakey那一行替换为create ssl ecdsakey /nsconfig/ssl/yourdomain-2026.key -curve P_256,其余命令保持不变。 - 要在提示符下读取 CSR 内容,请在设备的 shell 中运行
cat /nsconfig/ssl/yourdomain-2026.csr。


