Проверка сертификатов PKI Azure Stack Hub
Инструмент проверки готовности Azure Stack Hub, описанный в этой статье, доступен в коллекции PowerShell. Используйте средство для проверки того, что созданные сертификаты инфраструктуры открытых ключей (PKI) подходят для предварительного развертывания. Проверьте сертификаты, оставив достаточно времени для тестирования и повторной выдачи сертификатов при необходимости.
Средство проверки готовности выполняет следующие проверки сертификата:
- Анализ PFX
Проверяет наличие допустимого PFX-файла, правильность пароля и наличие защиты паролем для общедоступной информации. - Дата окончания срока действия
Проверяет наличие минимального срока действия в семь дней. - Алгоритм подписи
Проверяет, не используется ли алгоритм подписи SHA1. - Закрытый ключ
Проверяет наличие закрытого ключа и то, экспортируется ли он с помощью атрибута локального компьютера. - Цепочка сертификатов
Проверяет наличие и целостность цепочки сертификатов, включая самозаверяющиеся сертификаты. - DNS-имена
Проверяет, имеются ли в сети хранения данных соответствующие DNS-имена для каждой конечной точки или присутствует ли вспомогательный подстановочный знак. - Использование ключа
Проверяет, применяется ли цифровая подпись и шифрование при использовании ключа, а при расширенном использовании ключа также проверяет выполнение аутентификации сервера и клиента. - Размер ключа
Проверяет, достигает ли размер ключа значения 2048. - Порядок в цепочке
Проверяет порядок других сертификатов, чтобы убедиться, что порядок правильный. - Другие сертификаты
Проверяет, не были ли упакованы в PFX-файл другие сертификаты (кроме соответствующего конечного сертификата и его цепочки).
Важно!
PFX-файл и пароль сертификата PKI должны быть конфиденциальными.
Предварительные требования
Прежде чем начать проверку сертификатов 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.pfxC:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfxC:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
- Поместите сертификаты в соответствующие каталоги, созданные на предыдущем шаге. Пример:
В окне PowerShell измените значения
RegionNameFQDNи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, измените значение для
-CertificateType. Пример.# 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-файл для каждого типа сертификата. Если тип сертификата поддерживает несколько сертификатов, требуются вложенные папки для каждого отдельного сертификата с учетом имени. В следующем примере кода показана структура папок и сертификатов для всех типов сертификатов, а также соответствующее значение для
-CertificateTypeи-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 # -CertificateType AppServices ` | | api.pfx # -CertificatePath C:\Certificates\AppServices | | | +---DefaultDomain | | wappsvc.pfx | | | +---Identity | | sso.pfx | | | \---Publishing | ftp.pfx | +---DBAdapter # Invoke-AzsCertificateValidation ` | dbadapter.pfx # -CertificateType DBAdapter ` | # -CertificatePath C:\Certificates\DBAdapter | +---Deployment # Invoke-AzsCertificateValidation ` | +---ACSBlob # -CertificateType Deployment ` | | acsblob.pfx # -CertificatePath C:\Certificates\Deployment | | | +---ACSQueue | | acsqueue.pfx ./. ./. ./. ./. ./. ./. ./. <- Deployment certificate tree trimmed. | \---Public Portal | portal.pfx | \---EventHubs # Invoke-AzsCertificateValidation ` eventhubs.pfx # -CertificateType EventHubs ` # -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 завершается сбоем, несмотря на наличие 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 Admin | adminmanagement_<region>_<externalFQDN> |
| ARM Public | management_<region>_<externalFQDN> |
| Хранилище ключей | wildcard_vault_<region>_<externalFQDN> |
| Внутреннее хранилище Key Vault | wildcard_adminvault_<region>_<externalFQDN> |
| Общедоступный хост-процесс для расширений | wildcard_hosting_<region>_<externalFQDN> |
| Общедоступный портал | portal_<region>_<externalFQDN> |
Дальнейшие действия
После проверки сертификатов с помощью AzsReadinessChecker можно использовать их для развертывания Azure Stack Hub или смены секретов после развертывания.
- Для развертывания безопасно передайте сертификаты инженеру развертывания, чтобы они могли скопировать их на виртуальную машину развертывания, узел, как указано в требованиях PKI Azure Stack Hub — обязательные сертификаты.
- Сведения о смене секретов см. в статье "Смена секретов" в Azure Stack Hub. Смена сертификатов поставщика ресурсов для добавления значений рассматривается в разделе "Смена внешних секретов".