证书的管理
TLS 使用证书在双方之间建立信任。您必须在提供服务的每个服务器上安装合适的证书,并确保连接到该服务器的机器信任该证书。证书签名有以下选项:
- 自签名证书。不建议使用这些证书。这些证书难以管理,因为您必须手动将此证书复制到任何其他必须信任该证书的机器上。
- 企业证书颁发机构。如果您已部署现有 PKI,那么这通常是用于内部设备之间证书签名的最简单选项。
- 公共证书颁发机构。这要求您向证书颁发机构证明域的所有权。它的优点是,非托管客户端设备通常预先配置为信任来自主要公共证书颁发机构的证书。
创建一份新证书
在创建证书时,请遵循您所在组织的策略和程序。
使用 Microsoft 证书颁发机构创建证书
如果 Microsoft 证书颁发机构已集成到 Active Directory 域或 Delivery Controller 所加入的受信任林中,您可以从“证书 MMC 管理单元证书注册向导”获取证书。Microsoft 证书颁发机构需要发布适合 Web 服务器使用的证书模板。
根证书使用组策略自动部署到域中的其他计算机。因此,域中的所有其他计算机都信任使用 Microsoft 证书颁发机构创建的证书。如果您的计算机不在域中,则需要导出根证书颁发机构证书并将其导入到这些计算机中。
-
在服务器上,打开 MMC 控制台并添加“证书”管理单元。出现提示时,选择“计算机帐户”。
-
展开 “个人”>“证书”,然后使用 “所有任务”>“请求新证书” 上下文菜单命令。

-
单击 “下一步” 开始,然后单击 “下一步” 确认您正在从 Active Directory 注册获取证书。
-
选择合适的模板,例如 “Web 服务器可导出”。如果模板已设置为自动提供“主题”的值,则无需提供更多详细信息即可单击 “注册”。否则,单击 “需要更多信息才能注册此证书。单击此处配置设置。”
请求证书对话框(/zh-cn/citrix-virtual-apps-desktops/2511/media/tls-request-certificates.png)
-
要为证书模板提供更多详细信息,请单击“详细信息”箭头按钮并配置以下内容:
主题名称:选择“公用名”并添加服务器的 FQDN。
备用名称:选择“DNS”并添加服务器的 FQDN。
证书属性(/zh-cn/citrix-virtual-apps-desktops/2511/media/tls-certificate-properties.png)
-
按“确定”。
-
按“注册”以创建证书。它将显示在证书列表中。
个人证书屏幕截图(/zh-cn/citrix-virtual-apps-desktops/2511/media/personal-certificates.png)
使用 IIS 创建证书请求
如果服务器上安装了 IIS,请完成以下步骤:
- 打开“Internet 信息服务 (IIS) 管理器”
- 在“连接”列表中选择服务器节点。
- 打开“服务器证书”。 指示“服务器证书”位置的屏幕截图(/zh-cn/citrix-virtual-apps-desktops/2511/media/iis-server-certificates.png)
- 在“操作”窗格中,选择“创建证书请求…”。 突出显示“创建证书请求”的操作菜单屏幕截图(/zh-cn/citrix-virtual-apps-desktops/2511/media/iis-create-certificate-request.png)
- 输入“可分辨名称属性”。 可分辨名称属性屏幕的屏幕截图(/zh-cn/citrix-virtual-apps-desktops/2511/media/iis-request-certificate-properties.png)
- 在“加密服务提供程序属性”屏幕上,将“加密服务提供程序”保留为默认值。选择 2048 或更高的密钥大小。
- 选择一个文件名,然后按“完成”。
- 将您的 CSR 上传到您的证书颁发机构。
- 收到证书后,从“操作”窗格中,选择“完成证书请求…”。
- 选择证书,提供一个友好名称,然后按确定。
目前无法设置主题备用名称。因此,该证书只能用于通过公用名指定的服务器。
通过证书管理单元创建证书签名请求
在证书 MMC 管理单元中,您可以创建证书签名请求。这会生成一个文件,您可以将其发送给证书颁发机构,由其提供证书。然后,您必须导入证书以将其与本地私钥结合。
-
在服务器上,打开 MMC 控制台并添加“证书”管理单元。出现提示时,选择“计算机帐户”。
- 展开“个人”>“证书”
- 选择“所有任务”>“高级操作”>“创建自定义请求”。
- 在“开始之前”中,选择“下一步”。
- 在“选择证书注册策略”屏幕上,选择一个合适的现有策略,或“不使用注册策略继续”。
- 在“自定义请求”屏幕上,如果使用注册策略,请选择一个合适的模板(如果可用),例如“可导出 Web 服务器”。
- 在“证书信息”屏幕上,展开“详细信息”并选择“属性”。
- 在证书属性窗口的常规选项卡上,输入一个合适的友好名称。
-
在主题选项卡上:
- 在主题名称下,选择通用名称并输入服务器的 FQDN。您可以输入通配符。选择添加。
- 在主题名称下,为组织、组织单位、地区、省/市/自治区、国家/地区添加相应的值。
- 在备用名称下,选择 DNS。添加服务器 FQDN。您可以添加多个服务器 FQDN 或通配符 FQDN。
-
在扩展选项卡上:
- 在密钥用法下,添加数字签名和密钥加密。
- 在扩展密钥用法(应用程序策略)下,添加服务器身份验证和客户端身份验证。
-
在私钥选项卡上。
- 在选择加密服务提供程序 (CSP) 下,选择一个合适的提供程序。
- 在密钥选项下,选择一个合适的密钥大小。对于 RSA 提供程序,密钥大小至少为 2048。为了更高的安全性,您可能希望选择 4096,但这会对性能产生轻微影响。
- 在密钥选项下,选择使私钥可导出。
- 选择确定。
- 选择下一步。
- 选择浏览并保存您的请求。
- 选择 完成。
- 将您的 CSR 上传到您的证书颁发机构。
- 收到证书后,导入它 到同一服务器上,以便将其链接到私钥。
创建新的自签名证书
在安装交付控制器™和 Web Studio 期间会创建一个自签名证书。您可以生成新的自签名证书并使用它来替换现有证书。
使用 IIS 管理器
如果服务器上安装了 IIS,则可以执行以下步骤:
-
以管理员身份登录到服务器。
- 打开 IIS 管理器
- 打开 服务器证书
-
在“操作”窗格中,选择“创建自签名证书”。

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

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-->
导入现有数字证书
您可以通过以下任一方法将现有证书导入到服务器中。
证书导入配置向导
-
双击 PFX 文件,或右键单击该文件并选择 安装 PFX。这将打开 证书导入向导。
-
对于 存储位置,选择 本地计算机。

-
如果需要,请输入密码。

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

使用“管理计算机证书”控制台
-
打开“管理计算机证书”控制台并导航到相应的证书存储。对于服务器证书,通常是 个人 > 证书。要信任根证书或自签名证书,请选择 受信任的根证书颁发机构 > 证书。
-
右键单击证书并选择 > 所有任务 > 导入…。

-
选择 浏览… 并选择文件。
-
如果需要,请输入密码。
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\。
导出不包含私钥的证书
要导出证书以便您可以将其导入其他设备以信任该证书,您应该排除私钥。
-
打开“管理计算机证书”。导航到 个人 > 证书 并选择您希望导出的证书。
-
从 操作 菜单中,选择 所有任务,然后选择 导出。

-
选择 否,不导出私钥,然后按 下一步。

-
选择格式 DER 编码二进制 X.509 (.CER)(默认),然后按 下一步。
-
输入文件名,然后按 下一步。

-
选择 完成。

导出包含私钥的数字证书
要导出证书以便您可以在其他服务器上使用它,您必须包含私钥。
-
打开“管理计算机证书”。导航到 个人 > 证书 并选择要导出的证书。
-
从 操作 菜单中,选择 所有任务,然后选择 导出。

-
选择 是,导出私钥,然后选择 下一步。

-
在 安全性 选项卡上,输入密码,然后选择 下一步。

-
输入文件名并选择 下一步。

-
选择 完成。

将证书转换为 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 格式,然后安装根证书。