產生 Azure Stack Hub 的憑證簽署要求
您可以使用 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 整備檢查工具:
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
,並針對部署憑證的 CSR 同時產生Azure Container Registry 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 -new <example.inf> <example.req>
,以certreq
簽署每個要求。 接著在該提高權限的系統上完成其餘程序,因為其要求 CA 所簽署的新憑證必須與其私密金鑰相符,而這個私密金鑰是從提高權限的系統上所產生的。
- 整備檢查程式將使用您系統的區域和外部網域名稱 (FQDN),來判斷從現有憑證擷取屬性的端點。 如果下列任一項適用於您的案例,您必須使用本文頂端的 [選擇 CSR 憑證案例] 選取器,並改為挑選本文的 [新部署] 版本:
- 您想要變更端點上憑證的屬性,例如主體、金鑰長度和簽章演算法。
- 您想要使用只包含通用名稱屬性的憑證主體。
- 在開始之前,請先確認您有 Azure Stack Hub 系統的 HTTPS 連線能力。
產生續約憑證的 CSR
本節涵蓋 CSR 的準備,以續約現有的 Azure Stack Hub PKI 憑證。
產生 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 Container Registry 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 檔案提交至您的 CA (內部或公用)。
$outputDirectory
變數指定的目錄包含必須提交至 CA 的 CSR。 此目錄也包含一個子目錄供您參考,其中包含在產生憑證要求的期間所使用的 .inf 檔案。 請確定 CA 會使用所產生的要求 (符合 Azure Stack Hub PKI 需求) 來產生憑證。
後續步驟
一旦您從憑證授權單位收到憑證時,請在相同的系統中遵循準備 Azure Stack Hub PKI 憑證中的步驟。