Preparare l'host dell'estensione nell'hub di Azure Stack

L'host dell'estensione protegge l'hub di Azure Stack riducendo il numero di porte TCP/IP necessarie. Questo articolo illustra come preparare l'hub di Azure Stack per l'host di estensione abilitato automaticamente tramite un pacchetto di aggiornamento dell'hub di Azure Stack dopo l'aggiornamento 1808. Questo articolo si applica agli aggiornamenti dell'hub di Azure Stack 1808, 1809 e 1811.

Requisiti per i certificati

L'host di estensione implementa due nuovi spazi dei nomi di dominio per garantire voci host univoche per ogni estensione del portale. I nuovi spazi dei nomi di dominio richiedono due certificati jolly aggiuntivi per garantire la comunicazione sicura.

La tabella mostra i nuovi spazi dei nomi e i certificati associati:

Cartella di distribuzione Soggetto del certificato e nome alternativo del soggetto richiesti Ambito (per area) Spazio dei nomi sottodominio
host dell'estensione Amministrazione *.adminhosting.<area> geografica.<fqdn> (certificati SSL con caratteri jolly) host dell'estensione Amministrazione adminhosting.<region>.<fqdn>
Host dell'estensione pubblica *.ospitare.<area> geografica.<fqdn> (certificati SSL con caratteri jolly) Host dell'estensione pubblica ospitare.<area> geografica.<Fqdn>

Per informazioni dettagliate sui requisiti dei certificati, vedere Requisiti dei certificati dell'infrastruttura a chiave pubblica dell'hub di Azure Stack.

Creare una richiesta di firma del certificato

Lo strumento Verifica conformità hub di Azure Stack consente di creare una richiesta di firma del certificato per i due certificati SSL nuovi e necessari. Seguire la procedura descritta nell'articolo Generazione di richieste di firma dei certificati dell'hub di Azure Stack.

Nota

È possibile ignorare questo passaggio a seconda del modo in cui sono stati richiesti i certificati SSL.

Convalidare i nuovi certificati

  1. Aprire PowerShell con autorizzazioni elevate per l'host del ciclo di vita dell'hardware o la workstation di gestione dell'hub di Azure Stack.

  2. Eseguire il cmdlet seguente per installare lo strumento Controllo conformità hub di Azure Stack:

    Install-Module -Name Microsoft.AzureStack.ReadinessChecker
    
  3. Eseguire lo script seguente per creare la struttura di cartelle richiesta:

    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 si esegue la distribuzione con Microsoft Entra ID Federated Services (AD FS), è necessario aggiungere le directory seguenti a $directories nello script: ADFS, Graph.

  4. Inserire i certificati esistenti, attualmente in uso nell'hub di Azure Stack, nelle directory appropriate. Ad esempio, inserire il certificato arm Amministrazione nella Arm Admin cartella . Inserire quindi i certificati di hosting appena creati nelle Admin extension host directory e Public extension host .

  5. Eseguire il cmdlet seguente per avviare il controllo del certificato:

    $pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString 
    
    Start-AzsReadinessChecker -CertificatePath c:\certificates -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
    
  6. Controllare l'output e se tutti i certificati superano tutti i test.

Importare i certificati host dell'estensione

Usare un computer in grado di connettersi all'endpoint con privilegi dell'hub di Azure Stack per i passaggi successivi. Assicurarsi di avere accesso ai nuovi file di certificato da tale computer.

  1. Usare un computer in grado di connettersi all'endpoint con privilegi dell'hub di Azure Stack per i passaggi successivi. Assicurarsi di accedere ai nuovi file di certificato da tale computer.

  2. Aprire PowerShell ISE per eseguire i blocchi di script successivi.

  3. Importare il certificato per l'endpoint di hosting amministratore.

    
    $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. Importare il certificato per l'endpoint di hosting.

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

Aggiornare la configurazione DNS

Nota

Questo passaggio non è necessario se è stata usata la delega della zona DNS per l'integrazione DNS. Se i singoli host A sono stati configurati per pubblicare gli endpoint dell'hub di Azure Stack, è necessario creare due record A host aggiuntivi:

IP Nome host Tipo
<IP> *. Adminhosting.<Area> geografica.<FQDN> Una
<IP> *. Ospitare.<Area> geografica.<FQDN> Una

Gli indirizzi IP allocati possono essere recuperati usando l'endpoint con privilegi eseguendo il cmdlet Get-AzureStackStampInformation.

Porte e protocolli

L'articolo Integrazione del data center dell'hub di Azure Stack - Pubblicare endpoint illustra le porte e i protocolli che richiedono la comunicazione in ingresso per pubblicare l'hub di Azure Stack prima dell'implementazione dell'host dell'estensione.

Pubblicare nuovi endpoint

Sono necessari due nuovi endpoint da pubblicare tramite il firewall. Gli indirizzi IP allocati dal pool vip pubblico possono essere recuperati usando il codice seguente che deve essere eseguito dall'endpoint con privilegi dell'ambiente dell'hub di Azure Stack.

# 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

Output di esempio

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

Apportare questa modifica prima di abilitare l'host dell'estensione. In questo modo i portali dell'hub di Azure Stack possono essere accessibili continuamente.

Endpoint (VIP) Protocollo Porte
hosting Amministrazione HTTPS 443
Hosting HTTPS 443

Aggiornare le regole di pubblicazione esistenti (abilitazione post-abilitazione dell'host dell'estensione)

Nota

Il pacchetto di aggiornamento dell'hub di Azure Stack 1808 non abilita ancora l'host dell'estensione. Consente di preparare l'host dell'estensione importando i certificati necessari. Non chiudere alcuna porta prima che l'host dell'estensione venga abilitato automaticamente tramite un pacchetto di aggiornamento dell'hub di Azure Stack dopo l'aggiornamento 1808.

Le porte endpoint esistenti seguenti devono essere chiuse nelle regole del firewall esistenti.

Nota

È consigliabile chiudere tali porte dopo aver completato la convalida.

Endpoint (VIP) Protocollo Porte
Portale (amministratore) HTTPS 12495
12499
12646
12647
12648
12649
12650
13001
13003
13010
13011
13012
13020
13021
13026
30015
Portale (utente) HTTPS 12495
12649
13001
13010
13011
13012
13020
13021
30015
13003
Azure Resource Manager (amministratore) HTTPS 30024
Azure Resource Manager (utente) HTTPS 30024

Passaggi successivi