Citrix Virtual Apps and Desktops 7 2402 LTSR

证书的管理

TLS 使用证书在两方之间建立信任。您必须在提供服务的每台服务器上安装合适的证书,并确保连接到该服务器的计算机信任该证书。证书签名有以下选项:

  • 自签名证书。不建议使用此类证书。它们难以管理,因为您必须手动将此证书复制到任何其他必须信任该证书的计算机。
  • 企业证书颁发机构。如果您已部署现有 PKI,那么这通常是用于内部设备之间证书签名的最简单选项。
  • 公共证书颁发机构。这要求您向证书颁发机构证明域的所有权。它的优点是,未受管理的客户端设备通常预配置为信任来自主要公共证书颁发机构的证书。

创建一份新证书

请遵循贵组织在创建证书时所制定的策略和规程。

使用 Microsoft 证书颁发机构创建证书

如果 Microsoft 证书颁发机构已集成到 Active Directory 域或 Delivery Controller 所加入的受信任林中,则可以从“证书”MMC 管理单元的“证书注册向导”获取证书。Microsoft 证书颁发机构需要发布适合 Web 服务器使用的证书模板。

根证书使用组策略自动部署到域中的其他计算机。因此,域中的所有其他计算机都信任使用 Microsoft 证书颁发机构创建的证书。如果您的计算机不在域中,则需要导出根证书颁发机构证书并将其导入到这些计算机中。

  1. 在服务器上,打开 MMC 控制台并添加“证书”管理单元。出现提示时,选择“计算机帐户”。

  2. 展开 个人 > 证书,然后使用 所有任务 > 请求新证书 上下文菜单命令。

    MMC 证书管理单元

  3. 单击 下一步 开始,然后单击 下一步 确认您正在从 Active Directory 注册获取证书。

  4. 选择合适的模板,例如 Web 服务器可导出。如果模板已设置为自动提供“主题”的值,则无需提供更多详细信息即可单击 注册。否则,单击 需要更多信息才能注册此证书。单击此处配置设置。

    请求证书对话框

  5. 要为证书模板提供更多详细信息,请单击“详细信息”箭头按钮并配置以下内容:

    主题名称:选择“公用名”并添加服务器的 FQDN。

    备用名称:选择“DNS”并添加服务器的 FQDN。

    证书属性

  6. 按“确定”。

  7. 按“注册”以创建证书。它将显示在证书列表中。

    个人证书屏幕截图

使用 IIS 创建证书请求

如果服务器上安装了 IIS,则完成以下步骤:

  1. 打开 Internet 信息服务 (IIS) 管理器
  2. 在“连接”列表中选择服务器节点。
  3. 打开“服务器证书”。 指示“服务器证书”位置的屏幕截图
  4. 在“操作”窗格中,选择“创建证书请求…”。 突出显示“创建证书请求”的操作菜单屏幕截图
  5. 输入“可分辨名称属性”。 可分辨名称属性屏幕的屏幕截图
  6. 在“加密服务提供程序属性”屏幕上,将“加密服务提供程序”保留为默认值。选择 2048 或更高的密钥大小。 Screenshot of Cryptographic Service Provider Properties screen
  7. 选择一个文件名,然后按 完成文件名屏幕截图
  8. 将您的 CSR 上传到您的证书颁发机构。
  9. 收到证书后,从 操作 窗格中,选择 完成证书请求…操作菜单中突出显示“完成证书请求”的屏幕截图
  10. 选择证书,提供一个 友好名称,然后按 确定完成证书响应窗口的屏幕截图

目前无法配置主题备用名称。因此,该证书的功能将仅限于通过通用名称指定的服务器。

从证书管理单元中创建证书签名请求

在“证书”MMC 管理单元中,您可以创建证书签名请求。这会生成一个文件,您可以将其发送给证书颁发机构,由其提供证书。然后,您必须导入证书,将其与本地私钥结合。

  1. 在服务器上,打开 MMC 控制台并添加“证书”管理单元。出现提示时,选择“计算机帐户”。

  2. 展开“个人”>“证书
  3. 选择“所有任务”>“高级操作”>“创建自定义请求”。
  4. 在“开始之前”上,选择“下一步”。
  5. 在“选择证书注册策略”屏幕上,选择一个合适的现有策略,或“不使用注册策略继续”。
  6. 在“自定义请求”屏幕上,如果使用注册策略,请选择一个合适的模板(如果可用),例如“Web 服务器可导出”。
  7. 在“证书信息”屏幕上,展开“详细信息”并选择“属性”。
  8. 在“证书属性”窗口的“常规”选项卡上,输入一个合适的友好名称。
  9. 在“主题”选项卡上:

    1. 在“主题名称”下,选择“公用名”并输入服务器的 FQDN。您可以输入通配符。选择“添加”。
    2. 在“主题名称”下,为组织、组织单位、地区、省/市/自治区、国家/地区添加相应的值。
    3. 在“备用名称”下,选择“DNS”。添加服务器 FQDN。您可以添加多个服务器 FQDN 或通配符 FQDN。
  10. 在“扩展”选项卡上:

    • 在“密钥用法”下,添加“数字签名”和“密钥加密”。
    • 在“增强型密钥用法(应用程序策略)”下,添加“服务器身份验证”和“客户端身份验证”。
  11. 在“私钥”选项卡上。

    • 在“选择加密服务提供程序 (CSP)”下,选择一个合适的提供程序。
    • 在“密钥选项”下,选择一个合适的密钥大小。对于 RSA 提供程序,至少使用 2048 的密钥大小。为了更高的安全性,您可能希望选择 4096,但这会对性能产生轻微影响。
    • 在“密钥选项”下,选择“使私钥可导出”。
  12. 选择“确定”。
  13. 选择“下一步”。
  14. 选择“浏览”并保存您的请求。
  15. 选择 完成
  16. 将您的 CSR 上传到您的证书颁发机构。
  17. 收到证书后,将其导入 到同一服务器上,以便将其链接到私钥。

创建新的自签名证书

在安装交付控制器™和 Web Studio 期间会创建一个自签名证书。您可以生成新的自签名证书并使用它来替换现有证书。

使用 IIS 管理器

如果服务器上安装了 IIS,则可以执行以下步骤:

  1. 以管理员身份登录到服务器。

  2. 打开 IIS 管理器
  3. 打开 服务器证书
  4. 在“操作”窗格中,选择“创建自签名证书”。

    服务器证书

  5. 在“创建自签名证书”中,输入证书名称,然后单击“确定”。然后创建自签名证书。

    创建自签名证书

Using PowerShell

您可以使用 PowerShell 创建自签名证书:

$certSubject = "CN=myddc.example.com" # The FQDN of the server.
$friendlyName = "Self-Signed-3"
$expireYears = 5

## Create new self-signed certificate under LocalMachine\My
$certificate = New-SelfSignedCertificate -Subject $certSubject -CertStoreLocation "Cert:\LocalMachine\My\" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256 -FriendlyName $friendlyName -NotAfter $([System.DateTime]::Now.AddYears($expireYears))

# Add to trusted root certificates
$rootCertStore = Get-Item "Cert:\LocalMachine\Root\"
$rootCertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$rootCertStore.Add($certificate)
<!--NeedCopy-->

现有证书的导入

您可以通过以下任何一种方法将现有证书导入到服务器中。

证书导入向导程序

  1. 双击 PFX 文件,或右键单击该文件并选择“安装 PFX”。这将打开“证书导入向导”。

  2. 对于“存储位置”,选择“本地计算机”。

    证书导入向导的屏幕截图

  3. 如果需要,请输入密码。

    证书导入向导的屏幕截图,私钥保护步骤

  4. 选择“证书存储”。对于服务器证书,请选择“个人”。如果这是您希望此计算机信任的根证书或自签名证书,则选择“受信任的根证书颁发机构”。

    证书导入向导的屏幕截图,证书存储步骤

使用“管理计算机证书”控制台

  1. 打开“管理计算机证书”控制台并导航到相应的证书存储。对于服务器证书,这通常是“个人”>“证书”。要信任根证书或自签名证书,请选择“受信任的根证书颁发机构”>“证书”。

  2. 右键单击证书并选择 > “所有任务” > “导入…”。

    管理计算机证书控制台

  3. 选择 浏览… 并选择文件。

  4. 如果需要,输入密码。

Use PowerShell

要导入证书,请使用 PowerShell cmdlet Import-PfxCertificate。例如,要将证书 certificate.pfx 以及密码 123456 导入到个人证书存储中,请运行以下命令:

Import-PfxCertificate -Password $(ConvertTo-SecureString -String "123456" -AsPlainText -Force) -CertStoreLocation Cert:\LocalMachine\My\ -FilePath .\Desktop\certificate.pfx
<!--NeedCopy-->

要导入受信任的根证书,请将 CertStoreLocation 设置为 Cert:\LocalMachine\Root\

导出不包含私钥的证书

要导出证书以便您可以将其导入其他设备以信任该证书,您应该排除私钥。

  1. 打开“管理计算机证书”。导航到 个人 > 证书 并选择要导出的证书。

  2. 操作 菜单中,选择 所有任务,然后选择 导出

    带有“导出”菜单的证书管理屏幕截图

  3. 选择 否,不导出私钥,然后按 下一步

    导出证书

  4. 选择格式 DER 编码的二进制 X.509 (.CER)(默认),然后按 下一步

  5. 输入文件名,然后按 下一步

    证书导出向导的屏幕截图,文件名

  6. 选择完成

    证书导出向导的屏幕截图,导出成功

导出包含私钥的证书

要导出证书以便您可以在其他服务器上使用它,您必须包含私钥。

  1. 打开“管理计算机证书”。导航到个人 > 证书并选择要导出的证书。

  2. 操作菜单中,选择所有任务,然后选择导出

    带有“导出”菜单的证书管理屏幕截图

  3. 选择是,导出私钥,然后选择下一步

    导出证书

  4. 安全选项卡上,输入密码,然后选择下一步

    证书导出向导的屏幕截图,安全步骤

  5. 输入文件名并选择下一步

    证书导出向导的屏幕截图,文件名

  6. 选择完成

    证书导出向导的屏幕截图,导出成功

将证书转换为 PEM 格式

默认情况下,Windows 以 PKCS#12 格式导出证书,作为包含私钥的 .pfx 文件。要在 NetScaler® Gateway 或许可证服务器上使用该证书,您必须将证书和私钥提取到 PEM 格式的单独文件中。您可以使用 openssl 来完成此操作。

要以 PEM 格式导出证书,请运行:

openssl pkcs12 -in name.pfx -clcerts -nokeys -out name.cer
<!--NeedCopy-->

它将要求您输入现有密码和新密码短语

要以 PEM 格式导出密钥,请运行:

openssl pkcs12 -in name.pfx -nocerts -out name.key
<!--NeedCopy-->

建立证书信任

  • 如果您使用的是公共证书颁发机构颁发的证书,那么设备通常会预先配置好相应的根证书。
  • 如果您使用企业证书颁发机构,则必须将根证书部署到任何需要信任该证书的设备中。如果使用 Active Directory 证书服务,根证书也会通过组策略部署到域中的所有计算机。您必须手动将根证书导入到非域加入的计算机(例如您的 NetScaler 网关)或其他域中的计算机上。
  • 如果您使用的是自签名证书,则必须将其手动安装到任何需要信任该证书的计算机上。

要从 Windows 导出自签名或受信任的根证书,请参阅 不带私钥导出证书

要使 Windows 信任该证书,您必须将 证书导入受信任的根证书颁发机构 存储中。如果使用 PowerShell,请输入存储路径 Cert:\LocalMachine\Root\

要使 NetScaler 信任该证书,首先请 将证书转换为 PEM 格式,然后 安装根证书

证书的管理