Preparación de certificados PKI de Azure Stack Hub
La herramienta Azure Stack Hub Readiness Checker que se describe en este artículo está disponible en la Galería de PowerShell. Use la herramienta para comprobar si los certificados de infraestructura de clave pública (PKI) generados son válidos para la implementación previa. Cuando valide los certificados, deje tiempo suficiente para que se prueben los certificados y, en caso necesario, vuelvan a emitirse.
La herramienta Readiness Checker realiza las siguientes validaciones de certificados:
-
Análisis de PFX
Comprueba si el archivo PFX es válido, la contraseña es correcta y si la información pública está protegida con contraseña. -
Fecha de expiración
Comprueba que tenga una validez mínima de siete días. -
Algoritmo de firma
Comprueba que el algoritmo de firma no sea SHA1. -
Clave privada
Comprueba si la clave privada está presente y se exporta con el atributo de máquina local. -
Cadena de certificados
Comprueba si la cadena de certificados está intacta junto con los certificados autofirmados. -
Nombres DNS
Comprueba que el SAN contiene nombres DNS correspondientes a cada punto de conexión o si hay un comodín compatible. -
Uso de la clave
Comprueba si el uso de la clave contiene una firma digital y el cifrado de la clave, y si el uso mejorado de clave contiene la autenticación del servidor y del cliente. -
Tamaño de la clave
Comprueba si tamaño de la clave es 2048 o más. -
Orden de la cadena
Comprueba que el orden de los demás certificados que conforman la cadena es correcto. -
Otros certificados
Garantiza que ningún otro certificado se haya empaquetado en PFX, solo el certificado de hoja pertinente y su cadena.
Importante
El certificado PKI es un archivo PFX y una contraseña que deben tratarse como información confidencial.
Requisitos previos
El sistema debe cumplir los siguientes requisitos previos para poder validar los certificados PKI de una implementación de Azure Stack Hub:
- Microsoft Azure Stack Hub Readiness Checker.
- Certificados SSL exportados siguiendo las instrucciones de preparación.
- DeploymentData.json.
- Windows 10 o Windows Server 2016.
Ejecución de la validación de certificados de servicios principales
Siga estos pasos para validar los certificados PKI de Azure Stack Hub para la implementación y rotación de secretos:
Instale AzsReadinessChecker desde un símbolo del sistema de PowerShell (5.1 o superior) mediante la ejecución del siguiente cmdlet:
Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
Cree la estructura de directorios del paquete. En el ejemplo siguiente, puede cambiar
<C:\Certificates\Deployment>
por la ruta de un nuevo directorio de su elección.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}
Nota
Se requieren AD FS y Graph si utiliza AD FS como sistema de identidad. Por ejemplo:
$directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'
- Sitúe los certificados en los directorios apropiados que creó en el paso anterior. Por ejemplo:
C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
- Sitúe los certificados en los directorios apropiados que creó en el paso anterior. Por ejemplo:
En la ventana de PowerShell, cambie los valores de
RegionName
,FQDN
yIdentitySystem
apropiados para el entorno de Azure Stack Hub y ejecute el siguiente cmdlet:$pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString Invoke-AzsHubDeploymentCertificateValidation -CertificatePath C:\Certificates\Deployment -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
Compruebe la salida y asegúrese de que todos los certificados pasen todas las pruebas. Por ejemplo:
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
Para validar certificados de otros servicios de Azure Stack Hub cambie el valor de
-CertificatePath
. Por ejemplo:# 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
Cada carpeta debe contener un único archivo PFX para el tipo de certificado. Si un tipo de certificado requiere varios certificados, es previsible la existencia de carpetas anidadas y con un nombre que distingue mayúsculas de minúsculas para cada certificado individual. En el código siguiente se muestra una estructura de carpeta o certificado de ejemplo para todos los tipos de certificado y el valor adecuado para
-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
Problemas conocidos
Síntoma: se omiten las pruebas
Causa: AzsReadinessChecker omite varias pruebas si no se cumple una dependencia:
Otros certificados se omiten si se produce un error en la cadena de certificados.
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
Solución: siga las instrucciones de la herramienta que se describen en la sección de detalles en cada conjunto de pruebas de cada certificado.
Síntoma: se produce un error en la comprobación de LA CRL HTTP a pesar de tener un CDP HTTP escrito en extensiones x509.
Causa: Actualmente, AzsReadinessChecker no puede comprobar el CDP HTTP en algunos lenguajes.
Solución: Ejecute la validación con el idioma del sistema operativo establecido en EN-US.
Certificados
Directorio | Certificado |
---|---|
ACSBlob | wildcard_blob_<region>_<externalFQDN> |
ACSQueue | wildcard_queue_<region>_<externalFQDN> |
ACSTable | wildcard_table_<region>_<externalFQDN> |
Host de extensiones de administración | wildcard_adminhosting_<region>_<externalFQDN> |
Admin Portal | adminportal_<region>_<externalFQDN> |
Administración de ARM | adminmanagement_<region>_<externalFQDN> |
Público de ARM | management_<region>_<externalFQDN> |
KeyVault | wildcard_vault_<region>_<externalFQDN> |
KeyVaultInternal | wildcard_adminvault_<region>_<externalFQDN> |
Host de extensiones públicas | wildcard_hosting_<region>_<externalFQDN> |
Public Portal | portal_<region>_<externalFQDN> |
Pasos siguientes
Una vez que AzsReadinessChecker valide los certificados, podrá utilizarlos en la implementación de Azure Stack Hub o en la rotación de secretos posterior a la implementación.
- Para la implementación, transfiera de forma segura los certificados al ingeniero de implementación para que puedan copiarlos en el host de máquina virtual de implementación, tal como se especifica en los requisitos de PKI de Azure Stack Hub: certificados obligatorios.
- Para la rotación de secretos, consulte Rotación de secretos en Azure Stack Hub. La rotación de certificados del proveedor de recursos de valor agregado se describe en la sección Rotación de secretos externos.