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

-
单击下一步开始,然后再次单击下一步以确认您正在从 Active Directory 注册获取证书。
-
选择合适的模板,例如 Web 服务器可导出。如果模板已设置为自动提供主题的值,则无需提供更多详细信息即可单击注册。否则,请单击需要更多信息才能注册此证书。单击此处配置设置。
请求证书对话框(/zh-cn/citrix-virtual-apps-desktops/2411/media/tls-request-certificates.png)
-
要为证书模板提供更多详细信息,请单击“详细信息”箭头按钮并配置以下内容:
主题名称:选择“通用名称”并添加服务器的 FQDN。
备用名称:选择“DNS”并添加服务器的 FQDN。
证书属性(/zh-cn/citrix-virtual-apps-desktops/2411/media/tls-certificate-properties.png)
-
按“确定”。
-
按“注册”以创建证书。它将显示在证书列表中。
个人证书屏幕截图(/zh-cn/citrix-virtual-apps-desktops/2411/media/personal-certificates.png)
使用 IIS 创建证书请求
如果服务器上安装了 IIS,则完成以下步骤:
- 打开“Internet 信息服务 (IIS) 管理器”
- 在“连接”列表中选择服务器节点。
- 打开“服务器证书”。 指示“服务器证书”位置的屏幕截图(/zh-cn/citrix-virtual-apps-desktops/2411/media/iis-server-certificates.png)
- 在“操作”窗格中,选择“创建证书请求…”。 突出显示“创建证书请求”的操作菜单屏幕截图(/zh-cn/citrix-virtual-apps-desktops/2411/media/iis-create-certificate-request.png)
- 输入“可分辨名称属性”。 可分辨名称属性屏幕的屏幕截图(/zh-cn/citrix-virtual-apps-desktops/2411/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 管理器
- 打开 服务器证书
-
在操作窗格中,选择创建自签名证书。

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

使用 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。这将打开证书导入向导。
-
对于存储位置,选择本地计算机。

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

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

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

-
选择 浏览… 并选择文件。
-
如果需要,请输入密码。
使用 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\。
导出不包含私钥的证书
为了导出证书,以便您可以将其导入到其他设备中,从而使这些设备能够信任该证书,您应该排除私钥。
-
打开“管理计算机证书”。导航到 个人 > 证书 并选择要导出的证书。
-
从 操作 菜单中,选择 所有任务,然后选择 导出。
带有“导出”菜单的证书管理屏幕截图(/zh-cn/citrix-virtual-apps-desktops/2411/media/certificate-export.png)
-
选择 否,不导出私钥,然后按 下一步。
导出证书(/zh-cn/citrix-virtual-apps-desktops/2411/media/certificate-export-no-private-key.png)
-
选择格式 DER 编码的二进制 X.509 (.CER)(默认),然后按 下一步。
-
输入文件名并按 下一步。
证书导出向导屏幕截图,文件名(/zh-cn/citrix-virtual-apps-desktops/2411/media/certificate-export-file.png)
-
选择 完成。

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

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

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

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

-
选择 完成。

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