Valider des certificats PKI Azure Stack Hub
L’outil Azure Stack Hub Readiness Checker décrit dans cet article est disponible à partir de PowerShell Gallery. Utilisez cet outil pour vérifier que les certificats PKI générés sont adaptés au prédéploiement. Validez les certificats en gardant suffisamment de temps pour tester et réémettre les certificats si nécessaire.
L’outil Readiness Checker effectue les validations de certificat suivantes :
-
Analyser PFX
Vérifie si le fichier PFX est valide, si le mot de passe est correct et si les informations publiques sont protégées par le mot de passe. -
Date d’expiration
Vérifie la validité minimale de 7 jours. -
Algorithme de signature
Vérifie que l’algorithme de signature n’est pas SHA1 (Secure Hash Algorithm 1). -
Clé privée
Vérifie que la clé privée est présente et qu’elle est exportée avec l’attribut d’ordinateur local. -
Chaîne d’approbation
Vérifie que la chaîne d’approbation est intacte, y compris pour les certificats auto-signés. -
Noms DNS
Vérifie que le réseau SAN contient les noms DNS appropriés pour chaque point de terminaison ou si un caractère générique de prise en charge est présent. -
Syntaxe de la clé
Vérifie que la syntaxe de la clé contient une signature numérique et un chiffrement de clé, et vérifie que la syntaxe avancée de la clé contient l’authentification du serveur et l’authentification du client. -
Taille de la clé
Vérifie que la taille de clé est au moins égale à 2 048 octets. -
Ordre de la chaîne
Vérifie l’ordre des autres certificats afin de garantir que l’ordre est correct. -
Autres certificats
Assurez-vous qu’aucun autre certificat n’a été packagé dans le PFX, à part le certificat feuille pertinent et sa chaîne.
Important
Le certificat PKI est un fichier PFX et le mot de passe doit être considéré comme une information sensible.
Prérequis
Votre système doit respecter la configuration requise ci-après afin de permettre la validation des certificats PKI pour un déploiement Azure Stack Hub :
- Outil Microsoft Azure Stack Hub Readiness Checker.
- Certificats SSL exportés conformément aux instructions de préparation.
- DeploymentData.json.
- Windows 10 ou Windows Server 2016
Effectuer la validation principale des certificats de service
Suivez les étapes ci-après afin de valider les certificats PKI Azure Stack Hub pour un déploiement et une rotation des secrets :
Installez AzsReadinessChecker à partir d’une invite PowerShell (5.1 ou ultérieur) en exécutant l’applet de commande suivante :
Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
Créez la structure de répertoires de certificat. Dans l’exemple ci-après, vous pouvez remplacer
<C:\Certificates\Deployment>
par un nouveau chemin d’accès de répertoire de votre choix.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}
Remarque
AD FS et Graph sont obligatoires si vous utilisez AD FS comme système d’identité. Par exemple :
$directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'
- Placez vos certificats dans les répertoires appropriés créés à l’étape précédente. Par exemple :
C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
- Placez vos certificats dans les répertoires appropriés créés à l’étape précédente. Par exemple :
Dans la fenêtre PowerShell, changez les valeurs de
RegionName
,FQDN
etIdentitySystem
en fonction de l’environnement Azure Stack Hub, puis exécutez l’applet de commande suivante :$pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString Invoke-AzsHubDeploymentCertificateValidation -CertificatePath C:\Certificates\Deployment -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
Vérifiez la sortie pour être sûr que tous les certificats ont réussi l’intégralité des tests. Par exemple :
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
Pour valider les certificats d’autres services Azure Stack Hub, changez la valeur de
-CertificatePath
. Par exemple :# 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
Chaque dossier doit contenir un fichier PFX pour le type de certificat. Si un type de certificat a des exigences multicertificats, des dossiers imbriqués sont attendus pour chaque certificat avec un nom approprié. Le code suivant montre un exemple de structure de dossier/certificat pour tous les types de certificats, ainsi que la valeur appropriée pour
-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
Problèmes connus
Symptôme : les tests sont ignorés.
Cause : AzsReadinessChecker ignore certains tests si aucune dépendance n’est détectée :
Si la chaîne d’approbation échoue, les autres certificats sont ignorés.
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
Résolution : suivez les instructions de l’outil dans la section des détails sous chaque ensemble de tests de chacun des certificats.
Symptôme : La vérification de la liste de révocation de certificats HTTP échoue malgré l’écriture d’un CDP HTTP dans les extensions x509.
Cause : Actuellement, AzsReadinessChecker ne peut pas case activée pour http CDP dans certains langages.
Résolution : Exécutez une validation avec la langue du système d’exploitation définie à EN-US.
Certificats
Répertoire | Certificat |
---|---|
ACSBlob | wildcard_blob_<region>_<externalFQDN> |
ACSQueue | wildcard_queue_<region>_<externalFQDN> |
ACSTable | wildcard_table_<region>_<externalFQDN> |
Hôte d’extension d’administration | wildcard_adminhosting_<region>_<externalFQDN> |
Portail d’administration | adminportal_<region>_<externalFQDN> |
Administrateur ARM | adminmanagement_<region>_<externalFQDN> |
ARM Public | management_<region>_<externalFQDN> |
KeyVault | wildcard_vault_<region>_<externalFQDN> |
KeyVaultInternal | wildcard_adminvault_<region>_<externalFQDN> |
Hôte d’extension public | wildcard_hosting_<region>_<externalFQDN> |
Portail public | portal_<region>_<externalFQDN> |
Étapes suivantes
Une fois vos certificats validés par AzsReadinessChecker, vous pouvez les utiliser dans votre déploiement Azure Stack Hub ou pour la rotation des secrets post-déploiement.
- Pour le déploiement, transférez en toute sécurité vos certificats à votre ingénieur de déploiement afin qu’il puisse les copier sur l’hôte de machine virtuelle de déploiement, comme spécifié dans Configuration requise pour l’infrastructure À clé publique Azure Stack Hub - Certificats obligatoires.
- Pour la rotation des secrets, consultez Rotation des secrets dans Azure Stack Hub. La rotation des certificats de fournisseur de ressources à valeur ajoutée est abordée dans la section Effectuer une rotation des secrets externes.