可以使用 Azure Stack Hub 就绪性检查器工具创建适用于 Azure Stack Hub 部署的证书签名请求(CSR),或为现有部署续订证书。 请务必请求、生成和验证证书,并留出足够的时间在部署之前对其进行测试。
该工具用于根据本文顶部的 “选择 CSR 证书方案 选择器”请求以下证书:
- 新部署的标准证书:在本文顶部使用选择 CSR 证书场景选择器,选择新部署。
- 选择现有部署的续订证书:在本文顶部的“选择 CSR 证书方案选择器”中选择续订。
- 平台即服务(PaaS)证书:可以选择使用标准和续订证书生成。 有关更多详细信息 ,请参阅 Azure Stack Hub 公钥基础结构 (PKI) 证书要求 - 可选的 PaaS 证书 。
先决条件
在为 Azure Stack Hub 部署生成 PKI 证书的 CSR 之前,系统必须满足以下先决条件:
- 你必须在具有 Windows 10 或更高版本或 Windows Server 2016 或更高版本的计算机上。
- 使用以下 cmdlet 从 PowerShell 提示符(5.1 或更高版本)安装 Azure Stack Hub 就绪情况检查器工具 :
Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
- 证书需要以下属性:
- 区域名称
- 外部完全限定的域名 (FQDN)
- 使用者
为新部署证书生成 CSR
注释
生成证书签名请求需要提升。 在无法进行提升的受限环境中,可以使用此工具生成明文模板文件,其中包含 Azure Stack Hub 外部证书所需的所有信息。 然后,需要在权限提升的会话上使用这些模板文件来完成生成公钥/私钥对。 有关详细信息,请参阅下文。
若要为新的 Azure Stack Hub PKI 证书准备 CSR,请完成以下步骤:
在安装了就绪情况检查器工具的计算机上打开 PowerShell 会话。
声明以下变量:
注释
<regionName>.<externalFQDN>
构成在 Azure Stack Hub 中创建所有外部 DNS 名称的基础。 在以下示例中,门户将为portal.east.azurestack.contoso.com
。$outputDirectory = "$ENV:USERPROFILE\Documents\AzureStackCSR" # An existing output directory $IdentitySystem = "AAD" # Use "AAD" for Azure Active Director, "ADFS" for Active Directory Federation Services $regionName = 'east' # The region name for your Azure Stack Hub deployment $externalFQDN = 'azurestack.contoso.com' # The external FQDN for your Azure Stack Hub deployment
现在,使用相同的 PowerShell 会话生成 CSR。 这些说明特定于你选择的 “主题 ”格式:
注释
Azure Stack Hub 服务的第一个 DNS 名称将配置为证书请求上的 CN 字段。
声明主题,例如:
$subject = "C=US,ST=Washington,L=Redmond,O=Microsoft,OU=Azure Stack Hub"
通过完成以下任一操作来生成 CSR:
对于 生产部署环境,第一个脚本将为部署证书生成 CSR:
New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
如果需要,第二个脚本会使用
-IncludeContainerRegistry
,并同时为 Azure 容器注册表和部署证书生成 CSR:New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -IncludeContainerRegistry
第三个脚本将为已安装的任何可选 PaaS 服务生成 CSR:
# App Services New-AzsHubAppServicesCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory # DBAdapter (SQL/MySQL) New-AzsHubDbAdapterCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory # EventHubs New-AzsHubEventHubsCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory # Azure Container Registry New-AzsHubAzureContainerRegistryCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory
对于 低特权环境,若要生成具有声明必要属性的明文证书模板文件,请添加
-LowPrivilege
参数:New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -LowPrivilege
对于 开发和测试环境,若要生成具有多个使用者可选名称的单个 CSR,请添加
-RequestType SingleCSR
参数和值。重要
不建议将此方法用于生产环境。
New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -RequestType SingleCSR -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
完成最终步骤:
查看输出:
Starting Certificate Request Process for Deployment CSR generating for following SAN(s): *.adminhosting.east.azurestack.contoso.com,*.adminvault.east.azurestack.contoso.com,*.blob.east.azurestack.contoso.com,*.hosting.east.azurestack.contoso.com,*.queue.east.azurestack.contoso.com,*.table.east.azurestack.contoso.com,*.vault.east.azurestack.contoso.com,adminmanagement.east.azurestack.contoso.com,adminportal.east.azurestack.contoso.com,management.east.azurestack.contoso.com,portal.east.azurestack.contoso.com Present this CSR to your Certificate Authority for Certificate Generation: C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710165538.req Certreq.exe output: CertReq: Request Created
如果使用了
-LowPrivilege
参数,则在C:\Users\username\Documents\AzureStackCSR
子目录中生成了.inf文件。 例如:C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710165538_ClearTextTemplate.inf
将文件复制到允许提升的系统,然后使用以下语法对每个请求
certreq
进行签名:certreq -new <example.inf> <example.req>
然后在提升权限的系统上完成其余的过程,因为需要使 CA 签名的新证书与其私钥匹配,私钥是在提升权限的系统上生成的。
- 就绪情况检查器将使用系统的区域和外部域名(FQDN)来确定用于从现有证书中提取属性的终结点。 如果以下任一方案适用于你的方案,则必须使用本文顶部的 “选择 CSR 证书方案 选择器”,然后改为选择本文的新 部署 版本:
- 想要更改终结点上的证书属性,例如主题、密钥长度和签名算法。
- 你想要使用仅包含公用名属性的证书主题。
- 在开始之前,请确认已建立 Azure Stack Hub 系统的 HTTPS 连接。
为续订证书生成 CSR
本部分介绍用于续订现有 Azure Stack Hub PKI 证书的 CSR 的准备。
生成 CSR
在安装了就绪情况检查器工具的计算机上打开 PowerShell 会话。
声明以下变量:
注释
就绪情况检查器使用
stampEndpoint
加上附加的字符串来查找现有证书。 例如,portal.east.azurestack.contoso.com
用于部署证书、sso.appservices.east.azurestack.contoso.com
应用服务证书等。$regionName = 'east' # The region name for your Azure Stack Hub deployment $externalFQDN = 'azurestack.contoso.com' # The external FQDN for your Azure Stack Hub deployment $stampEndpoint = "$regionName.$externalFQDN" $outputDirectory = "$ENV:USERPROFILE\Documents\AzureStackCSR" # Declare the path to an existing output directory
通过完成以下一个或多个步骤来生成 CSR:
对于 生产环境,第一个脚本将为部署证书生成 CSR:
New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
如果需要,第二个脚本会使用
-IncludeContainerRegistry
,并在为部署证书生成 CSR 的同时,为 Azure 容器注册表生成 CSR。New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -IncludeContainerRegistry
第三个脚本将为已安装的任何可选 PaaS 服务生成 CSR:
# App Services New-AzsHubAppServicesCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory # DBAdapter New-AzsHubDBAdapterCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory # EventHubs New-AzsHubEventHubsCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory # Azure Container Registry New-AzsHubAzureContainerRegistryCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
对于 开发和测试环境,若要生成具有多个使用者可选名称的单个 CSR,请添加
-RequestType SingleCSR
参数和值。重要
不建议将此方法用于生产环境。
New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -RequestType SingleCSR
查看输出:
Querying StampEndpoint portal.east.azurestack.contoso.com for existing certificate Starting Certificate Request Process for Deployment CSR generating for following SAN(s): *.adminhosting.east.azurestack.contoso.com,*.adminvault.east.azurestack.contoso.com,*.blob.east.azurestack.contoso.com,*.hosting.east.azurestack.contoso.com,*.queue.east.azurestack.contoso.com,*.table.east.azurestack.contoso.com,*.vault.east.azurestack.contoso.com,adminmanagement.east.azurestack.contoso.com,adminportal.east.azurestack.contoso.com,management.east.azurestack.contoso.com,portal.east.azurestack.contoso.com Present this CSR to your certificate authority for certificate generation: C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710122723.req Certreq.exe output: CertReq: Request Created
准备就绪后,将生成的 .req 文件提交到证书授权机构(可以是内部或公共的)。 变量指定的 $outputDirectory
目录包含必须提交到 CA 的 CSR。 该目录还包含用于引用的子目录,其中包含在证书请求生成过程中要使用的 .inf 文件。 确保 CA 使用满足 Azure Stack Hub PKI 要求的生成的请求生成证书。
后续步骤
从证书颁发机构收到证书后,请遵循在同一系统上 准备 Azure Stack Hub PKI 证书 中的步骤。