bg-tutorials

如何在 NetScaler 中生成 CSR

本指南向您展示如何在 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 都接受的最低要求。仅当您的安全策略要求更大的密钥时,才选择 30724096;代价是 TLS 握手会略微加重。
  • Public Exponent Value:F4 (0x10001),这是几乎所有网络上的 RSA 证书都使用的标准值。
  • Key Format:PEM
  • PEM Encoding Algorithm:如需未加密的密钥,请留空。下拉菜单提供 AES 256DESDES3 选项;由于 DES 和 DES3 是过时的算法,AES 256 是这三者中唯一现代的选择。无论您选择哪一个,NetScaler 都会要求您在每次重启以及每次引用该密钥时输入(并重新输入)密码短语,这在您自行管理的设备上很少值得这么做。除非您的策略另有规定,否则请将其留空。
  • PEM PassphraseConfirm 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 国家代码(例如 USGBDE)。
  • 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 PasswordCompany Name:可选的旧属性。公共 CA 会忽略这两项;请留空。

步骤 5:添加主题备用名称(SAN)

现代浏览器和客户端(Chromium、Firefox、Safari、.NET、Java、Go)仅根据主题备用名称扩展来验证主机名;自 2017 年起,Common Name 就不再用于信任判定。对于单一名称的订单,公共 CA 会自动将 CN 复制到一个 SAN 条目中,因此仅有 CN 的请求仍然可以签发,但如果您需要在一张证书上包含多个主机名(例如 example.comwww.example.com,或多域名证书),则必须明确添加这些名称。

  • 打开对话框中的Subject Alternative Name (SAN)部分。
  • 为每个主机名添加一个条目,前缀为 DNS:,例如 DNS:www.example.comDNS: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

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

龙飞行的详细图像
撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.