准备用于部署或轮换的 Azure Stack Hub PKI 证书
注意
本文仅适用于准备外部证书,这些证书用于保护外部基础结构和服务上的终结点。 内部证书在证书轮换过程中单独进行管理。
备注
如果要安装 Azure 容器注册表 (ACR),建议让外部 ACR 证书的到期日期与其他外部 Azure Stack Hub 证书的到期日期保持一致。 此外,建议使用一个与保护其他外部证书 PFX 时使用的密码相同的密码来保护 ACR 的 PFX。
必须使用符合 Azure Stack Hub 的证书要求的属性来导入和导出从证书颁发机构 (CA) 获取的证书文件。
本文介绍如何导入、打包和验证外部证书,以便为 Azure Stack Hub 部署或机密轮换做准备。
必备条件
在打包用于 Azure Stack Hub 部署的 PKI 证书之前,系统应符合以下先决条件:
- 从证书颁发机构返回的证书存储在单个目录中,格式为 .cer 格式(其他可配置格式包括 .cert、.sst 和 .pfx)。
- Windows 10 或 Windows Server 2016(或更高版本)
- 使用生成证书签名请求的同一系统(除非要针对的是预打包到 PFX 中的证书)。
- 使用提升的 PowerShell 会话。
继续进行到相应的准备证书(Azure Stack 就绪性检查器)或准备证书(手动步骤)部分。
准备证书(Azure Stack 就绪性检查器)
使用 Azure Stack 就绪性检查器 PowerShell cmdlet 将证书打包,步骤如下:
在 PowerShell 提示符(5.1 或更高版本)下,通过运行以下 cmdlet 来安装 Azure Stack 就绪性检查器模块:
Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
指定证书文件的路径。 例如:
$Path = "$env:USERPROFILE\Documents\AzureStack"
声明 pfxPassword。 例如:
$pfxPassword = Read-Host -AsSecureString -Prompt "PFX Password"
声明要将生成的 PFX 导出到的 ExportPath。 例如:
$ExportPath = "$env:USERPROFILE\Documents\AzureStack"
将证书转换为 Azure Stack Hub 证书。 例如:
ConvertTo-AzsPFX -Path $Path -pfxPassword $pfxPassword -ExportPath $ExportPath
查看输出:
ConvertTo-AzsPFX v1.2005.1286.272 started. Stage 1: Scanning Certificates Path: C:\Users\[*redacted*]\Documents\AzureStack Filter: CER Certificate count: 11 adminmanagement_east_azurestack_contoso_com_CertRequest_20200710235648.cer adminportal_east_azurestack_contoso_com_CertRequest_20200710235645.cer management_east_azurestack_contoso_com_CertRequest_20200710235644.cer portal_east_azurestack_contoso_com_CertRequest_20200710235646.cer wildcard_adminhosting_east_azurestack_contoso_com_CertRequest_20200710235649.cer wildcard_adminvault_east_azurestack_contoso_com_CertRequest_20200710235642.cer wildcard_blob_east_azurestack_contoso_com_CertRequest_20200710235653.cer wildcard_hosting_east_azurestack_contoso_com_CertRequest_20200710235652.cer wildcard_queue_east_azurestack_contoso_com_CertRequest_20200710235654.cer wildcard_table_east_azurestack_contoso_com_CertRequest_20200710235650.cer wildcard_vault_east_azurestack_contoso_com_CertRequest_20200710235647.cer Detected ExternalFQDN: east.azurestack.contoso.com Stage 2: Exporting Certificates east.azurestack.contoso.com\Deployment\ARM Admin\ARMAdmin.pfx east.azurestack.contoso.com\Deployment\Admin Portal\AdminPortal.pfx east.azurestack.contoso.com\Deployment\ARM Public\ARMPublic.pfx east.azurestack.contoso.com\Deployment\Public Portal\PublicPortal.pfx east.azurestack.contoso.com\Deployment\Admin Extension Host\AdminExtensionHost.pfx east.azurestack.contoso.com\Deployment\KeyVaultInternal\KeyVaultInternal.pfx east.azurestack.contoso.com\Deployment\ACSBlob\ACSBlob.pfx east.azurestack.contoso.com\Deployment\Public Extension Host\PublicExtensionHost.pfx east.azurestack.contoso.com\Deployment\ACSQueue\ACSQueue.pfx east.azurestack.contoso.com\Deployment\ACSTable\ACSTable.pfx east.azurestack.contoso.com\Deployment\KeyVault\KeyVault.pfx Stage 3: Validating Certificates. Validating east.azurestack.contoso.com-Deployment-AAD certificates in C:\Users\[*redacted*]\Documents\AzureStack\east.azurestack.contoso.com\Deployment Testing: KeyVaultInternal\KeyVaultInternal.pfx Thumbprint: E86699****************************4617D6 PFX Encryption: OK Expiry Date: OK Signature Algorithm: OK DNS Names: OK Key Usage: OK Key Length: OK Parse PFX: OK Private Key: OK Cert Chain: OK Chain Order: OK Other Certificates: OK Testing: ARM Public\ARMPublic.pfx ... Log location (contains PII): C:\Users\[*redacted*]\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessChecker.log ConvertTo-AzsPFX Completed
注意
有关其他用法,请使用 Get-help ConvertTo-AzsPFX -Full 以进一步了解用法,如针对不同的证书格式禁用验证或筛选。
成功验证之后,可以提供用于部署或轮换的证书,而不需要任何其他步骤。
准备证书(手动步骤)
对于新的 Azure Stack Hub PKI 证书,请使用以下手动步骤来打包证书。
导入证书
将从所选 CA 获取的原始证书版本复制到部署主机上的目录。
警告
如果已以任何方式导入、导出或更改直接由 CA 提供的文件,请勿复制该文件。
右键单击证书并选择“安装证书”或“安装PFX”,具体取决于从 CA 传送证书的方式。
在证书导入向导中,选择“本地计算机”作为导入位置。 选择“下一步” 。 在下一个屏幕上,再次选择“下一步”。
选择“将所有证书放在以下存储中”,然后选择“企业信任”作为位置。 选择“确定”以关闭“证书存储选择”对话框,然后选择“下一步”。
a. 如果要导入 PFX,则会看到其他对话框。 在“私钥保护”页上,输入证书文件的密码,然后启用“将此密钥标记为可导出”选项,它使你稍后能够备份或传输密钥。 选择下一步。
选择“完成”以完成导入。
注意
导入 Azure Stack Hub 的证书后,证书的私钥将作为 PKCS 12 文件 (PFX) 存储在群集存储上。
导出证书
打开证书管理员 MMC 控制台并连接到本地计算机证书存储。
打开 Microsoft 管理控制台。 若要在 Windows 10 中打开控制台,请右键单击“开始”菜单,选择“运行”,然后键入“mmc”并按 Enter 键 。
选择“文件”>“添加/删除管理单元”,然后选择“证书”并选择“添加”。
选择“计算机帐户”,然后选择“下一步”。 选择“本地计算机”,然后选择“完成”。 选择“确定”以关闭“添加/删除管理单元”页。
浏览到“证书”>“企业信任”>“证书位置”。 确认在右侧看到你的证书。
从证书管理员控制台任务栏中,选择“操作”>“所有任务”>“导出”。 选择“下一步” 。
注意
根据你拥有 Azure Stack Hub 证书的数量,可能需要多次完成此过程。
选择“是,导出私钥”,然后选择“下一步” 。
在“导出文件格式”部分执行以下操作:
选择“包括证书路径中的所有证书(如果可能)”。
选择“导出所有扩展属性”。
选择“启用证书隐私”。
选择下一步。
选择“密码”并为证书提供密码。 创建满足以下密码复杂性要求的密码:
- 最小长度为 8 个字符。
- 至少包含以下字符中的三种字符:大写字母、小写字母、0-9 中的数字、特殊字符、不是大写也不是小写的字母字符。
记下此密码。 需将它用作部署参数。
选择“下一步” 。
选择要导出的 PFX 文件的文件名和位置。 选择“下一步”。
选择“完成”。