Compartilhar via


Preparar-se para o host de extensão no Azure Stack Hub

O host de extensão protege o Azure Stack Hub reduzindo o número de portas TCP/IP necessárias. Este artigo descreve como preparar o Azure Stack Hub para o host de extensão habilitado automaticamente por meio de um pacote de atualização do Azure Stack Hub após a atualização de 1808. Este artigo se aplica às atualizações do Azure Stack Hub 1808, 1809 e 1811.

Requisitos de certificado

O host de extensão implementa dois novos namespaces de domínio para garantir entradas de host exclusivas para cada extensão do portal. Os novos namespaces de domínio exigem dois certificados curinga adicionais para garantir a comunicação segura.

A tabela mostra os novos namespaces e os certificados associados:

Pasta de Implantação Assunto do certificado requerido e nomes alternativos do assunto (SAN) Escopo (por região) Namespace de subdomínio
Host de extensão do administrador *.adminhosting.<region>.<fqdn> (certificados SSL curinga) Host de extensão do administrador adminhosting.<region>.<fqdn>
Host de extensão pública *.hosting.<region>.<fqdn> (certificados SSL curinga) Host de extensão pública hosting.<region>.<fqdn>

Para obter requisitos detalhados de certificado, consulte os requisitos de certificado de infraestrutura de chave pública do Azure Stack Hub.

Criar solicitação de assinatura de certificado

A ferramenta verificador de preparação do Azure Stack Hub permite criar uma solicitação de assinatura de certificado para os dois certificados SSL novos e necessários. Siga as etapas no artigo geração de solicitação de assinatura de certificados do Azure Stack Hub.

Observação

Você pode ignorar essa etapa, dependendo de como solicitou seus certificados SSL.

Validar novos certificados

  1. Abra o PowerShell com permissão elevada no host do ciclo de vida do hardware ou na estação de trabalho de gerenciamento 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 script a seguir 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}
    

    Observação

    Se você implantar com o Serviços Federados do Microsoft Entra ID (AD FS), os seguintes diretórios deverão ser adicionados a $directories no script: ADFS, Graph.

  4. Coloque os certificados existentes, que você está usando atualmente no Azure Stack Hub, em diretórios apropriados. Por exemplo, coloque o certificado ARM de administrador na Arm Admin pasta. Em seguida, coloque os certificados de hospedagem recém-criados nos diretórios Admin extension host e Public extension host.

  5. Execute o seguinte cmdlet para iniciar a verificação de 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 a saída para ver se todos os certificados passam em todos os testes.

Importar certificados do host de extensão

Use um computador que possa se conectar ao ponto de extremidade privilegiado do Azure Stack Hub para as próximas etapas. Verifique se você tem acesso aos novos arquivos de certificado desse computador.

  1. Use um computador que possa se conectar ao ponto de extremidade privilegiado do Azure Stack Hub para as próximas etapas. Certifique-se de acessar os novos arquivos de certificado desse computador.

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

  3. Importe o certificado para o endpoint de hospedagem 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 endpoint de hospedagem.

    $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 configuração de DNS

Observação

Essa etapa não será necessária se você usou a delegação de Zona DNS para integração de DNS.

Se registros A de host individuais tiverem sido configurados para publicar pontos de extremidade do Azure Stack Hub, você precisará criar dois registros A de host adicionais:

Protocolo de Internet (IP) Nome do host Tipo
<IP> *.Adminhosting.<Region>.<FQDN> A
<IP> *.Hosting.<Region>.<FQDN> A

Os IPs alocados podem ser recuperados usando o endpoint privilegiado ao executar o cmdlet Get-AzureStackStampInformation.

Portas e protocolos

O artigo Integração do datacenter do Azure Stack Hub - Publicação de pontos de extremidades abrange as portas e protocolos que requerem comunicação de entrada para publicar o Azure Stack Hub antes da distribuição do host da extensão.

Publicar novos pontos de extremidade

Há dois novos pontos de extremidade necessários a serem publicados por meio do firewall. Os IPs alocados do pool VIP público podem ser recuperados usando o seguinte código, que deve ser executado a partir do ponto de extremidade privilegiado de seu 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

Observação

Faça essa alteração antes de habilitar o host de extensão. Isso permite que os portais do Azure Stack Hub sejam continuamente acessíveis.

Ponto de extremidade (VIP) Protocolo Portas
Hospedagem de administrador HTTPS 443
Hospedagem HTTPS 443

Atualizar as regras de publicação existentes após a habilitação do host de extensão

Observação

O Pacote de Atualização do Azure Stack Hub 1808 ainda não habilita o host de extensão. Ele permite que você se prepare para o host de extensão importando os certificados necessários. Não feche nenhuma porta antes que o host de extensão seja habilitado automaticamente por meio de um pacote de atualização do Azure Stack Hub após a atualização de 1808.

As portas de ponto de extremidade existentes a seguir devem ser fechadas em suas regras de firewall existentes.

Observação

É recomendável que você feche essas portas após a validação bem-sucedida.

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

Próximas etapas