Preparar o anfitrião de extensões no Azure Stack Hub

O anfitrião da extensão protege o Azure Stack Hub ao reduzir o número de portas TCP/IP necessárias. Este artigo analisa a preparação do Azure Stack Hub para o anfitrião de extensões que é ativado automaticamente através de um pacote de atualização do Azure Stack Hub após a atualização 1808. Este artigo aplica-se às atualizações 1808, 1809 e 1811 do Azure Stack Hub.

Requisitos de certificados

O anfitrião de extensões implementa dois novos espaços de nomes de domínio para garantir entradas de anfitrião exclusivas para cada extensão do portal. Os novos espaços de nomes de domínio requerem dois certificados de carateres universais adicionais para garantir uma comunicação segura.

A tabela mostra os novos espaços de nomes e os certificados associados:

Pasta de Implementação Nome alternativo do requerente do certificado e do requerente (SAN) necessários Âmbito (por região) Espaço de nomes de subdomínio
Administração anfitrião da extensão *.adminhosting.<região>.<fqdn> (Certificados SSL de Carateres Universais) Administração anfitrião da extensão adminhosting.<região>.<fqdn>
Anfitrião de extensão pública *.hosting.<região>.<fqdn> (Certificados SSL de Carateres Universais) Anfitrião de extensão pública alojamento.<região>.<fqdn>

Para obter os requisitos de certificado detalhados, veja Requisitos de certificados de infraestrutura de chaves públicas do Azure Stack Hub.

Criar pedido de assinatura de certificado

A ferramenta Verificador de Preparação do Azure Stack Hub permite-lhe criar um pedido de assinatura de certificados para os dois certificados SSL novos e necessários. Siga os passos no artigo Geração de pedidos de assinatura de certificados do Azure Stack Hub.

Nota

Pode ignorar este passo consoante a forma como pediu os certificados SSL.

Validar novos certificados

  1. Abra o PowerShell com permissão elevada no anfitrião do ciclo de vida do hardware ou na estação de trabalho de gestão do Azure Stack Hub.

  2. Execute o seguinte cmdlet para instalar a ferramenta Verificador de Preparação do Azure Stack Hub:

    Install-Module -Name Microsoft.AzureStack.ReadinessChecker
    
  3. Execute o seguinte script para criar a estrutura de pastas necessária:

    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

    Se implementar com Microsoft Entra serviços federados de ID (AD FS), os seguintes diretórios têm de ser adicionados a $directories no script: ADFS, Graph.

  4. Coloque os certificados existentes, que está a utilizar atualmente no Azure Stack Hub, em diretórios adequados. Por exemplo, coloque o certificado arm Administração na Arm Admin pasta . Em seguida, coloque os certificados de alojamento recém-criados nos Admin extension host diretórios e Public extension host .

  5. Execute o seguinte cmdlet para iniciar a verificação do 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. Verifique o resultado e se todos os certificados passam em todos os testes.

Importar certificados de anfitrião de extensão

Utilize um computador que possa ligar ao ponto final privilegiado do Azure Stack Hub para os próximos passos. Certifique-se de que tem acesso aos novos ficheiros de certificado a partir desse computador.

  1. Utilize um computador que possa ligar ao ponto final privilegiado do Azure Stack Hub para os próximos passos. Certifique-se de que acede aos novos ficheiros de certificado a partir desse computador.

  2. Abra o ISE do PowerShell para executar os próximos blocos de script.

  3. Importe o certificado para o ponto final de alojamento do administrador.

    
    $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 o certificado para o ponto final de alojamento.

    $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
    }
    

Atualizar a configuração de DNS

Nota

Este passo não é necessário se tiver utilizado a delegação de Zona DNS para a Integração de DNS. Se os registos A do anfitrião individual tiverem sido configurados para publicar pontos finais do Azure Stack Hub, terá de criar dois registos A de anfitrião adicionais:

IP Hostname (Nome do anfitrião) Tipo
<IP> *. Adminhosting.<Região>.<FQDN> A
<IP> *. Alojamento.<Região>.<FQDN> A

Os IPs alocados podem ser obtidos com o ponto final privilegiado ao executar o cmdlet Get-AzureStackStampInformation.

Portas e protocolos

O artigo Integração do datacenter do Azure Stack Hub – Publicar pontos finais abrange as portas e protocolos que requerem comunicação de entrada para publicar o Azure Stack Hub antes da implementação do anfitrião da extensão.

Publicar novos pontos finais

Existem dois novos pontos finais necessários para serem publicados através da firewall. Os IPs alocados do conjunto VIP público podem ser obtidos com o seguinte código que tem de ser executado a partir do ponto final privilegiado do ambiente do 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

Saída de Exemplo

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

Faça esta alteração antes de ativar o anfitrião da extensão. Isto permite que os portais do Azure Stack Hub sejam continuamente acessíveis.

Ponto final (VIP) Protocolo Portas
Alojamento Administração HTTPS 443
Alojamento HTTPS 443

Atualizar regras de publicação existentes (Ativação pós-ativação do anfitrião de extensões)

Nota

O Pacote de Atualização do Azure Stack Hub 1808 ainda não ativa o anfitrião de extensões. Permite-lhe preparar-se para o anfitrião de extensões ao importar os certificados necessários. Não feche nenhuma porta antes de o anfitrião da extensão ser ativado automaticamente através de um pacote de atualização do Azure Stack Hub após a atualização 1808.

As seguintes portas de ponto final existentes têm de ser fechadas nas regras de firewall existentes.

Nota

É recomendado fechar essas portas após a validação com êxito.

Ponto final (VIP) Protocolo Portas
Portal (administrador) HTTPS 12495
12499
12646
12647
12648
12649
12650
13001
13003
13010
13011
13012
13020
13021
13026
30015
Portal (utilizador) HTTPS 12495
12649
13001
13010
13011
13012
13020
13021
30015
13003
Azure Resource Manager (administrador) HTTPS 30024
Azure Resource Manager (utilizador) HTTPS 30024

Passos seguintes