Compartir a través de


Preparación de un host de extensiones de Azure Stack Hub

El host de extensión protege Azure Stack Hub reduciendo el número de puertos TCP/IP necesarios. En este artículo se describe cómo preparar Azure Stack Hub para el host de extensión que se habilita automáticamente a través de un paquete de actualización de Azure Stack Hub después de la actualización 1808. Este artículo se aplica a las actualizaciones 1808, 1809 y 1811 de Azure Stack Hub.

Requisitos de certificados

El host de extensiones implementa dos nuevos espacios de nombres de dominio que permiten garantizar entradas de host únicas para cada extensión del portal. Los nuevos espacios de nombres de dominio requieren dos certificados comodín adicionales para garantizar la comunicación segura.

En la tabla se muestran los nuevos espacios de nombres y los certificados asociados:

Carpeta de implementación Sujeto del certificado requerido y nombres alternativos del sujeto (SAN) Ámbito (por región) Espacio de nombres de subdominio
Administración del host de extensiones *.adminhosting.<región>.<fqdn> (certificados SSL comodín) Administración del host de extensiones adminhosting.<región>.<fqdn>
Host de extensión pública *.hosting.<región>.<fqdn> (certificados SSL comodín) Host de extensión pública hosting.<región>.<fqdn>

Para conocer los requisitos detallados del certificado, consulte Requisitos de certificado de infraestructura de clave pública de Azure Stack Hub.

Creación de una solicitud de firma de certificado

La herramienta Azure Stack Hub Readiness Checker permite crear una solicitud de firma de certificado para los dos certificados SSL nuevos y necesarios. Siga los pasos del artículo Generación de solicitudes de firma de certificados de Azure Stack Hub.

Nota:

Puede omitir este paso, en función de cómo haya solicitado los certificados SSL.

Validación de nuevos certificados

  1. Abra PowerShell con permisos elevados en el host del ciclo de vida de hardware o en la estación de trabajo de administración de Azure Stack Hub.

  2. Ejecute el siguiente cmdlet para instalar la herramienta Azure Stack Hub Readiness Checker:

    Install-Module -Name Microsoft.AzureStack.ReadinessChecker
    
  3. Ejecute el siguiente script para crear la estructura de carpetas necesaria:

    New-Item C:\Certificates -ItemType Directory
    
    $directories = 'ACSBlob','ACSQueue','ACSTable','Admin Portal','ARM Admin','ARM Public','KeyVault','KeyVaultInternal','Public Portal', 'Admin extension host', 'Public extension host'
    
    $destination = 'c:\certificates'
    
    $directories | % { New-Item -Path (Join-Path $destination $PSITEM) -ItemType Directory -Force}
    

    Nota:

    Si realiza la implementación con Servicios de federación de Microsoft Entra ID (AD FS), deben agregarse los directorios siguientes a $directories en el script: ADFS, Graph.

  4. Coloque los certificados existentes, que actualmente usa en Azure Stack Hub, en los directorios adecuados. Por ejemplo, coloque el certificado arm de administrador en la Arm Admin carpeta . Después, coloque los certificados de hospedaje recién creados en los Admin extension host directorios y Public extension host .

  5. Ejecute el siguiente cmdlet para iniciar la comprobación del certificado:

    $pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString 
    
    Start-AzsReadinessChecker -CertificatePath c:\certificates -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
    
  6. Compruebe la salida para ver si todos los certificados superan todas las pruebas.

Importar certificados del host de extensión

Use un equipo que pueda conectarse al punto de conexión con privilegios de Azure Stack Hub para los pasos siguientes. Asegúrese de que tiene acceso a los nuevos archivos de certificado desde ese equipo.

  1. Use un equipo que pueda conectarse al punto de conexión con privilegios de Azure Stack Hub para los pasos siguientes. Asegúrese de acceder a los nuevos archivos de certificado desde ese equipo.

  2. Abra PowerShell ISE para ejecutar los siguientes bloques de script.

  3. Importe el certificado para el punto de conexión del anfitrión administrativo.

    
    $CertPassword = read-host -AsSecureString -prompt "Certificate Password"
    
    $CloudAdminCred = Get-Credential -UserName <Privileged endpoint credentials> -Message "Enter the cloud domain credentials to access the privileged endpoint."
    
    [Byte[]]$AdminHostingCertContent = [Byte[]](Get-Content c:\certificate\myadminhostingcertificate.pfx -Encoding Byte)
    
    Invoke-Command -ComputerName <PrivilegedEndpoint computer name> `
    -Credential $CloudAdminCred `
    -ConfigurationName "PrivilegedEndpoint" `
    -ArgumentList @($AdminHostingCertContent, $CertPassword) `
    -ScriptBlock {
            param($AdminHostingCertContent, $CertPassword)
            Import-AdminHostingServiceCert $AdminHostingCertContent $certPassword
    }
    
  4. Importe el certificado para el punto de conexión de hospedaje:

    $CertPassword = read-host -AsSecureString -prompt "Certificate Password"
    
    $CloudAdminCred = Get-Credential -UserName <Privileged endpoint credentials> -Message "Enter the cloud domain credentials to access the privileged endpoint."
    
    [Byte[]]$HostingCertContent = [Byte[]](Get-Content c:\certificate\myhostingcertificate.pfx  -Encoding Byte)
    
    Invoke-Command -ComputerName <PrivilegedEndpoint computer name> `
    -Credential $CloudAdminCred `
    -ConfigurationName "PrivilegedEndpoint" `
    -ArgumentList @($HostingCertContent, $CertPassword) `
    -ScriptBlock {
            param($HostingCertContent, $CertPassword)
            Import-UserHostingServiceCert $HostingCertContent $certPassword
    }
    

Actualización de la configuración de DNS

Nota:

Este paso no es necesario si ha usado la delegación de zona DNS para la integración de DNS.

Si se han configurado registros A de host individuales para publicar puntos de conexión de Azure Stack Hub, debe crear dos registros A de host adicionales:

IP Nombre de anfitrión Tipo
<IP> *.Adminhosting.<Región>.<FQDN> A
<IP> *.Hosting.<Región>.<FQDN> A

Las direcciones IP asignadas se pueden recuperar mediante el punto de conexión con privilegios mediante la ejecución del cmdlet Get-AzureStackStampInformation.

Puertos y protocolos

En el artículo Integración del centro de datos de Azure Stack Hub: publicación de puntos de conexión se tratan los puertos y protocolos que requieren la comunicación entrante para publicar Azure Stack Hub antes de la implementación del host de extensión.

Publicación de nuevos puntos de conexión

Hay dos nuevos puntos de conexión que deben publicarse a través de su firewall. Las direcciones IP asignadas del grupo de VIP públicas se pueden recuperar mediante el código siguiente que se debe ejecutar desde el punto de conexión con privilegios del entorno de Azure Stack Hub.

# Create a PEP Session
winrm s winrm/config/client '@{TrustedHosts= "<IpOfERCSMachine>"}'
$PEPCreds = Get-Credential
$PEPSession = New-PSSession -ComputerName <IpOfERCSMachine> -Credential $PEPCreds -ConfigurationName "PrivilegedEndpoint" -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# Obtain DNS Servers and extension host information from Azure Stack Hub Stamp Information and find the IPs for the Host Extension Endpoints
$StampInformation = Invoke-Command $PEPSession {Get-AzureStackStampInformation} | Select-Object -Property ExternalDNSIPAddress01, ExternalDNSIPAddress02, @{n="TenantHosting";e={($_.TenantExternalEndpoints.TenantHosting) -replace "https://*.","testdnsentry"-replace "/"}},  @{n="AdminHosting";e={($_.AdminExternalEndpoints.AdminHosting)-replace "https://*.","testdnsentry"-replace "/"}},@{n="TenantHostingDNS";e={($_.TenantExternalEndpoints.TenantHosting) -replace "https://",""-replace "/"}},  @{n="AdminHostingDNS";e={($_.AdminExternalEndpoints.AdminHosting)-replace "https://",""-replace "/"}}
If (Resolve-DnsName -Server $StampInformation.ExternalDNSIPAddress01 -Name $StampInformation.TenantHosting -ErrorAction SilentlyContinue) {
    Write-Host "Can access AZS DNS" -ForegroundColor Green
    $AdminIP = (Resolve-DnsName -Server $StampInformation.ExternalDNSIPAddress02 -Name $StampInformation.AdminHosting).IPAddress
    Write-Host "The IP for the Admin Extension Host is: $($StampInformation.AdminHostingDNS) - is: $($AdminIP)" -ForegroundColor Yellow
    Write-Host "The Record to be added in the DNS zone: Type A, Name: $($StampInformation.AdminHostingDNS), Value: $($AdminIP)" -ForegroundColor Green
    $TenantIP = (Resolve-DnsName -Server $StampInformation.ExternalDNSIPAddress01 -Name $StampInformation.TenantHosting).IPAddress
    Write-Host "The IP address for the Tenant Extension Host is $($StampInformation.TenantHostingDNS) - is: $($TenantIP)" -ForegroundColor Yellow
    Write-Host "The Record to be added in the DNS zone: Type A, Name: $($StampInformation.TenantHostingDNS), Value: $($TenantIP)" -ForegroundColor Green
}
Else {
    Write-Host "Cannot access AZS DNS" -ForegroundColor Yellow
    $AdminIP = (Resolve-DnsName -Name $StampInformation.AdminHosting).IPAddress
    Write-Host "The IP for the Admin Extension Host is: $($StampInformation.AdminHostingDNS) - is: $($AdminIP)" -ForegroundColor Yellow
    Write-Host "The Record to be added in the DNS zone: Type A, Name: $($StampInformation.AdminHostingDNS), Value: $($AdminIP)" -ForegroundColor Green
    $TenantIP = (Resolve-DnsName -Name $StampInformation.TenantHosting).IPAddress
    Write-Host "The IP address for the Tenant Extension Host is $($StampInformation.TenantHostingDNS) - is: $($TenantIP)" -ForegroundColor Yellow
    Write-Host "The Record to be added in the DNS zone: Type A, Name: $($StampInformation.TenantHostingDNS), Value: $($TenantIP)" -ForegroundColor Green
}
Remove-PSSession -Session $PEPSession

Ejemplo de salida

Can access AZS DNS
The IP for the Admin Extension Host is: *.adminhosting.\<region>.\<fqdn> - is: xxx.xxx.xxx.xxx
The Record to be added in the DNS zone: Type A, Name: *.adminhosting.\<region>.\<fqdn>, Value: xxx.xxx.xxx.xxx
The IP address for the Tenant Extension Host is *.hosting.\<region>.\<fqdn> - is: xxx.xxx.xxx.xxx
The Record to be added in the DNS zone: Type A, Name: *.hosting.\<region>.\<fqdn>, Value: xxx.xxx.xxx.xxx

Nota:

Realice este cambio antes de habilitar el host de extensión. Esto permite que los portales de Azure Stack Hub sean accesibles continuamente.

Punto de conexión (VIP) Protocolo Puertos
Hospedaje de administradores HTTPS 443
Alojamiento HTTPS 443

Actualizar las reglas de publicación existentes (habilitación posterior del host de extensión)

Nota:

El paquete de actualización de Azure Stack Hub 1808 aún no habilita el host de extensión. Permite preparar el host de extensión mediante la importación de los certificados necesarios. No cierre ningún puerto antes de que el host de extensión se habilite automáticamente a través de un paquete de actualización de Azure Stack Hub después de la actualización 1808.

Los siguientes puertos de punto de conexión existentes deben cerrarse en las reglas de firewall existentes.

Nota:

Se recomienda cerrar esos puertos después de la validación correcta.

Punto de conexión (VIP) Protocolo Puertos
Portal (administrador) HTTPS 12495
12499
12646
12647
12648
12649
12650
13001
13003
13010
13011
13012
13020
13021
13026
30015
Portal (usuario) HTTPS 12495
12649
13001
13010
13011
13012
13020
13021
30015
13003
Azure Resource Manager (administrador) HTTPS 30024
Azure Resource Manager (usuario) HTTPS 30024

Pasos siguientes