Vorbereiten auf den Erweiterungshost in Azure Stack Hub

Der Erweiterungshost trägt zum Schutz von Azure Stack Hub bei, indem die Anzahl erforderlicher TCP/IP-Ports verringert wird. In diesem Artikel erfahren Sie, wie Sie Azure Stack Hub für den Erweiterungshost vorbereiten, der nach dem Update 1808 automatisch über ein Azure Stack Hub-Updatepaket aktiviert wird. Dieser Artikel gilt für die Updates 1808, 1809 und 1811 von Azure Stack Hub.

Zertifikatanforderungen

Der Erweiterungshost implementiert zwei neue Domänennamespaces, um eindeutige Hosteinträge für jede Portalerweiterung zu gewährleisten. Die neuen Domänennamespaces erfordern zwei zusätzliche Platzhalterzertifikate, um eine sichere Kommunikation sicherzustellen.

Die Tabelle zeigt die neuen Namespaces und die zugehörigen Zertifikate:

Bereitstellungsordner Erforderlicher Zertifikatantragsteller und alternative Antragstellernamen Bereich (pro Region) Namespace der Unterdomäne
Administrator-Erweiterungshost *.adminhosting.<region>.<fqdn> (SSL-Platzhalterzertifikate) Administrator-Erweiterungshost adminhosting.<region>.<fqdn>
Öffentlicher Erweiterungshost *.hosting.<region>.<fqdn> (SSL-Platzhalterzertifikate) Öffentlicher Erweiterungshost hosting.<region>.<fqdn>

Ausführlichere Informationen zu den Zertifikatanforderungen finden Sie unter Azure Stack Hub-PKI-Zertifikatanforderungen.

Erstellen der Zertifikatsignieranforderung

Mit dem Tool Azure Stack Hub Readiness Checker können Sie eine Zertifikatsignieranforderung für die beiden neuen und erforderlichen SSL-Zertifikate erstellen. Befolgen Sie die Schritte im Artikel Generieren von Signieranforderungen für Azure Stack Hub-Zertifikate.

Hinweis

Sie können diesen Schritt abhängig davon überspringen, wie Sie Ihre SSL-Zertifikate angefordert haben.

Überprüfen neuer Zertifikate

  1. Öffnen Sie PowerShell mit erhöhten Berechtigungen auf dem Hardware-Lebenszyklushost oder dem Azure Stack Hub-Verwaltungscomputer.

  2. Führen Sie das folgende Cmdlet aus, um das Tool Azure Stack Hub Readiness Checker zu installieren:

    Install-Module -Name Microsoft.AzureStack.ReadinessChecker
    
  3. Führen Sie das folgende Skript aus, um die erforderliche Ordnerstruktur zu erstellen:

    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}
    

    Hinweis

    Wenn Sie mit Microsoft Entra ID Federated Services (AD FS) bereitstellen, müssen die folgenden Verzeichnisse $directories im Skript hinzugefügt werden: ADFS, Graph.

  4. Platzieren Sie die Zertifikate, die Sie derzeit in Azure Stack Hub verwenden, in den entsprechenden Verzeichnissen. Legen Sie also beispielsweise das ARM-Administratorzertifikat im Ordner Arm Admin ab. Platzieren Sie anschließend die neu erstellten Hostingzertifikate in den Verzeichnissen Admin extension host und Public extension host.

  5. Führen Sie das folgende Cmdlet aus, um die Überprüfung der Zertifikate zu starten:

    $pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString 
    
    Start-AzsReadinessChecker -CertificatePath c:\certificates -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
    
  6. Überprüfen Sie die Ausgabe und den erfolgreichen Ausgang aller Tests für alle Zertifikate.

Importieren von Zertifikaten für den Erweiterungshost

Verwenden Sie für die folgenden Schritte einen Computer, der eine Verbindung mit dem für Azure Stack Hub berechtigten Endpunkt herstellen kann. Vergewissern Sie sich, dass Sie Zugriff auf die neuen Zertifikatsdateien auf diesem Computer haben.

  1. Verwenden Sie für die folgenden Schritte einen Computer, der eine Verbindung mit dem für Azure Stack Hub berechtigten Endpunkt herstellen kann. Vergewissern Sie sich, dass Sie auf die neuen Zertifikatsdateien auf diesem Computer zugreifen.

  2. Öffnen Sie die PowerShell-ISE zum Ausführen der nächsten Skriptblöcke.

  3. Importieren Sie das Zertifikat für den Administrator-Hostingendpunkt.

    
    $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. Importieren Sie das Zertifikat für den Hostingendpunkt.

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

Aktualisieren der DNS-Konfiguration

Hinweis

Dieser Schritt ist nicht erforderlich, wenn Sie die DNS-Zonendelegierung für die DNS-Integration verwenden. Wenn einzelne A-Datensätze des Hosts zum Veröffentlichen von Azure Stack Hub-Endpunkten konfiguriert wurden, müssen Sie zwei zusätzliche A-Datensätze für den Host erstellen:

IP Hostname type
<IP> *.Adminhosting.<Region>.<FQDN> A
<IP> *.Hosting.<Region>.<FQDN> Ein

Die zugeordneten IP-Adressen können mithilfe des berechtigten Endpunkts abgerufen werden, indem das Cmdlet Get-AzureStackStampInformation ausgeführt wird.

Ports und Protokolle

Im Artikel Integration des Azure Stack Hub-Datencenters – Veröffentlichen von Endpunkten werden die Ports und Protokolle behandelt, für die vor dem Rollout des Erweiterungshosts eine eingehende Kommunikation zum Veröffentlichen von Azure Stack Hub erforderlich ist.

Veröffentlichen neuer Endpunkte

Es gibt zwei neue Endpunkte, die über die Firewall hinweg veröffentlicht werden müssen. Die zugeordneten IP-Adressen aus dem öffentlichen VIP-Pool können mit dem folgenden Code abgerufen werden. Dieser muss über den privilegierten Endpunkt Ihrer Azure Stack Hub-Umgebung ausgeführt werden.

# 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

Beispielausgabe

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

Hinweis

Nehmen Sie diese Änderung vor dem Aktivieren des Erweiterungshosts vor. Dadurch sind die Azure Stack Hub-Portale ohne Unterbrechung erreichbar.

Endpunkt (VIP) Protocol Ports
Administratorhosting HTTPS 443
Hosting HTTPS 443

Aktualisieren vorhandener Veröffentlichungsregeln (nach der Aktivierung des Erweiterungshosts)

Hinweis

Das Paket für das Azure Stack Hub-Update 1808 aktiviert den Erweiterungshost nicht. Es ermöglicht Ihnen die Vorbereitung für den Erweiterungshost durch das Importieren der erforderlichen Zertifikate. Schließen Sie keine Ports, bevor der Erweiterungshost nicht automatisch über ein Azure Stack Hub-Updatepaket nach dem Update 1808 aktiviert wurde.

Die folgenden vorhandenen Endpunktports müssen in vorhandenen Firewallregeln geschlossen werden.

Hinweis

Wir empfehlen Ihnen, die Ports nach der erfolgreichen Validierung zu schließen.

Endpunkt (VIP) Protocol Ports
Portal (Administrator) HTTPS 12495
12499
12646
12647
12648
12649
12650
13001
13003
13010
13011
13012
13020
13021
13026
30015
Portal (Benutzer) HTTPS 12495
12649
13001
13010
13011
13012
13020
13021
30015
13003
Azure Resource Manager (Administrator) HTTPS 30024
Azure Resource Manager (Benutzer) HTTPS 30024

Nächste Schritte