Проверка сертификатов PKI Azure Stack Hub
Средство проверки готовности Azure Stack Hub, описанное в этой статье, доступно в PowerShell Gallery. Используйте средство для проверки того, что создаваемые сертификаты инфраструктуры открытых ключей (PKI) подходят для предварительного развертывания. Проверьте сертификаты, оставив достаточно времени для проверки и повторного получения сертификатов при необходимости.
Средство проверки готовности выполняет следующие проверки сертификатов:
-
синтаксический анализ PFX
Проверяет наличие допустимого PFX-файла, правильного пароля и защиты общедоступной информации паролем. -
дата окончания срока действия
Проверяет минимальный срок действия в семь дней. -
алгоритм подписи
Проверяет, не является ли алгоритм подписи SHA1. -
закрытый ключ
Проверяет наличие закрытого ключа и экспортируется с помощью атрибута локального компьютера. -
Цепь сертификатов
Проверяет целостность цепочки сертификатов, включая проверку самоподписанных сертификатов. -
DNS-имена
Проверяет, что SAN содержит соответствующие DNS-имена для каждой конечной точки или есть ли вспомогательный подстановочный знак. -
Способы использования ключа
Проверяет, содержит ли использование ключа цифровую подпись и шифрование ключа и проверяет, содержит ли расширенное использование ключей проверку подлинности сервера и проверку подлинности клиента. -
размер ключа
Проверяет, равен ли размер ключа 2048 или больше. -
порядок цепочки
Проверяет порядок других сертификатов, проверяющих правильность заказа. -
другие сертификаты
Убедитесь, что в PFX не были включены другие сертификаты, кроме соответствующего конечного сертификата и его цепочки.
Важный
PKI-сертификат — это PFX-файл и пароль, который должен рассматриваться как конфиденциальная информация.
Необходимые условия
Перед проверкой PKI-сертификатов для развертывания Azure Stack Hub система должна соответствовать следующим предварительным требованиям:
- Средство проверки готовности Microsoft Azure Stack Hub.
- SSL-сертификаты, экспортированные согласно инструкциям по подготовке .
- DeploymentData.json.
- Windows 10 или Windows Server 2016.
Проверка сертификатов основных служб
Чтобы проверить PKI-сертификаты Azure Stack Hub для развертывания и смены секретов, выполните следующие действия.
Установите AzsReadinessChecker в командной строке PowerShell (5.1 или более поздней версии), выполнив следующую команду командлета:
Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
Создайте структуру каталога сертификатов. В приведенном ниже примере можно изменить
<C:\Certificates\Deployment>
на новый путь к каталогу.New-Item C:\Certificates\Deployment -ItemType Directory $directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal' $destination = 'C:\Certificates\Deployment' $directories | % { New-Item -Path (Join-Path $destination $PSITEM) -ItemType Directory -Force}
Заметка
Ad FS и Graph необходимы, если вы используете AD FS в качестве системы удостоверений. Например:
$directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'
- Поместите сертификаты в соответствующие каталоги, созданные на предыдущем шаге. Например:
C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
- Поместите сертификаты в соответствующие каталоги, созданные на предыдущем шаге. Например:
В окне PowerShell измените значения
RegionName
,FQDN
иIdentitySystem
, соответствующие среде Azure Stack Hub, и выполните следующий командлет:$pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString Invoke-AzsHubDeploymentCertificateValidation -CertificatePath C:\Certificates\Deployment -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
Проверьте выходные данные и убедитесь, что все сертификаты проходят все тесты. Например:
Invoke-AzsHubDeploymentCertificateValidation v1.2005.1286.272 started. 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 Thumbprint: 8DC4D9****************************69DBAA 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: Admin Portal\AdminPortal.pfx Thumbprint: 6F9055****************************4AC0EA 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: Public Portal\PublicPortal.pfx Log location (contains PII): C:\Users\[*redacted*]\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessChecker.log Report location (contains PII): C:\Users\[*redacted*]\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessCheckerReport.json Invoke-AzsHubDeploymentCertificateValidation Completed
Чтобы проверить сертификаты для других служб Azure Stack Hub, измените значение для
-CertificatePath
. Например:# App Services Invoke-AzsHubAppServicesCertificateValidation -CertificatePath C:\Certificates\AppServices -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com # DBAdapter Invoke-AzsHubDBAdapterCertificateValidation -CertificatePath C:\Certificates\DBAdapter -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com # EventHubs Invoke-AzsHubEventHubsCertificateValidation -CertificatePath C:\Certificates\EventHubs -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com
Каждая папка должна содержать один PFX-файл для типа сертификата. Если для типа сертификата требуется несколько сертификатов, ожидается наличие вложенных папок для каждого отдельного сертификата, причем имена этих папок должны точно соответствовать требованиям. В следующем коде показан пример структуры папок или сертификатов для всех типов сертификатов, а также соответствующее значение для
-CertificatePath
.C:\>tree c:\SecretStore /A /F Folder PATH listing Volume serial number is 85AE-DF2E C:\SECRETSTORE \---AzureStack +---CertificateRequests \---Certificates +---AppServices # Invoke-AzsCertificateValidation ` | +---API # -CertificatePath C:\Certificates\AppServices | | api.pfx | | | +---DefaultDomain | | wappsvc.pfx | | | +---Identity | | sso.pfx | | | \---Publishing | ftp.pfx | +---DBAdapter # Invoke-AzsCertificateValidation ` | dbadapter.pfx # -CertificatePath C:\Certificates\DBAdapter | | +---Deployment # Invoke-AzsCertificateValidation ` | +---ACSBlob # -CertificatePath C:\Certificates\Deployment | | acsblob.pfx | | | +---ACSQueue | | acsqueue.pfx ./. ./. ./. ./. ./. ./. ./. <- Deployment certificate tree trimmed. | \---Public Portal | portal.pfx | \---EventHubs # Invoke-AzsCertificateValidation ` eventhubs.pfx # -CertificatePath C:\Certificates\EventHubs
Известные проблемы
Симптом: тесты пропускаются
Причина: AzsReadinessChecker пропускает определенные тесты, если зависимость не удовлетворена.
Другие сертификаты пропускаются, если цепочка сертификатов завершается ошибкой.
Testing: ACSBlob\singlewildcard.pfx Read PFX: OK Signature Algorithm: OK Private Key: OK Cert Chain: OK DNS Names: Fail Key Usage: OK Key Size: OK Chain Order: OK Other Certificates: Skipped Details: The certificate records '*.east.azurestack.contoso.com' do not contain a record that is valid for '*.blob.east.azurestack.contoso.com'. Please refer to the documentation for how to create the required certificate file. The other certificates check was skipped because cert chain and/or DNS names failed. Follow the guidance to remediate those issues and recheck. Log location (contains PII): C:\Users\username\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessChecker.log Report location (contains PII): C:\Users\username\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessCheckerReport.json Invoke-AzsCertificateValidation Completed
Резолюция: Следуйте руководству инструмента в разделе сведений в каждом наборе испытаний для каждого сертификата.
Симптом: Проверка HTTP CRL завершается сбоем, несмотря на то, что HTTP CDP записан в расширения x509.
Причина: в настоящее время AzsReadinessChecker не может проверить наличие HTTP CDP на некоторых языках.
Решение: проведите проверку с языком ОС, установленным на EN-US.
Сертификаты
Каталог | Сертификат |
---|---|
ACSBlob | wildcard_blob_<region>_<externalFQDN> |
ACSQueue | wildcard_queue_<region>_<externalFQDN> |
ACSTable | wildcard_table_<region>_<externalFQDN> |
Административный узел расширения | wildcard_adminhosting_<region>_<externalFQDN> |
Портал администрирования | adminportal_<region>_<externalFQDN> |
Администратор ARM | adminmanagement_<region>_<externalFQDN> |
ARM Public | management_<region>_<externalFQDN> |
KeyVault | wildcard_vault_<region>_<externalFQDN> |
KeyVaultInternal | wildcard_adminvault_<region>_<externalFQDN> |
Общедоступный хост расширений | wildcard_hosting_<region>_<externalFQDN> |
Общедоступный портал | portal_<region>_<externalFQDN> |
Дальнейшие действия
После проверки сертификатов с помощью AzsReadinessChecker вы можете использовать их для развертывания Azure Stack Hub или смены секретов после развертывания.
- Для развертывания безопасно передайте сертификаты инженеру развертывания, чтобы они могли скопировать их на узел виртуальной машины развертывания, как указано в требованиях к PKI Azure Stack Hub — обязательные сертификаты.
- Информацию о ротации секретов см. в разделе Повернуть секреты в Azure Stack Hub. Смена сертификатов поставщиков ресурсов с добавленной стоимостью рассматривается в разделе Смена внешних конфиденциальных данных.