Partager via


Préparer l’hôte d’extension dans Azure Stack Hub

L’hôte d’extension sécurise Azure Stack Hub en réduisant le nombre de ports TCP/IP requis. Cet article explique comment préparer Azure Stack Hub pour l’hôte d’extension qui est automatiquement activé via un package de mise à jour Azure Stack Hub après la mise à jour 1808. Cet article s’applique aux mises à jour d’Azure Stack Hub 1808, 1809 et 1811.

Conditions requises pour les certificats

L’hôte d’extension implémente deux nouveaux espaces de noms de domaine pour garantir des entrées d’hôte uniques pour chaque extension du portail. Les nouveaux espaces de noms de domaine nécessitent deux certificats génériques supplémentaires pour garantir une communication sécurisée.

Le tableau affiche les nouveaux espaces de noms et les certificats associés :

Dossier de déploiement Objet requis du certificat et noms alternatifs du sujet (SAN) Étendue (par région) Espace de noms de sous-domaine
Hôte d'extension d’administration *.adminhosting.<region>.<fqdn> (Wildcard SSL Certificates) Hôte d'extension d’administration adminhosting.<region>.<fqdn>
Hôte d’extension publique *.hosting.<region>.<fqdn> (Wildcard SSL Certificates) Hôte d’extension publique hosting.<region>.<fqdn>

Pour connaître les exigences détaillées en matière de certificat, consultez la configuration requise pour les certificats d’infrastructure à clé publique Azure Stack Hub.

Créer une demande de signature de certificat

L’outil Azure Stack Hub Readiness Checker vous permet de créer une demande de signature de certificat pour les deux certificats SSL nouveaux et requis. Suivez les étapes décrites dans l’article Sur la génération de demande de signature de certificats Azure Stack Hub.

Remarque

Vous pouvez ignorer cette étape, en fonction de la façon dont vous avez demandé vos certificats SSL.

Valider de nouveaux certificats

  1. Ouvrez PowerShell avec une autorisation élevée sur l’hôte de cycle de vie du matériel ou la station de travail de gestion Azure Stack Hub.

  2. Exécutez l’applet de commande suivante pour installer l’outil Azure Stack Hub Readiness Checker :

    Install-Module -Name Microsoft.AzureStack.ReadinessChecker
    
  3. Exécutez le script suivant pour créer la structure de dossiers requise :

    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}
    

    Remarque

    Si vous déployez avec microsoft Entra ID Federated Services (AD FS), les répertoires suivants doivent être ajoutés à $directories dans le script : ADFS, Graph.

  4. Placez les certificats existants, que vous utilisez actuellement dans Azure Stack Hub, dans les répertoires appropriés. Par exemple, placez le certificat ARM Administrateur dans le Arm Admin dossier. Puis placez les certificats d’hébergement nouvellement créés dans les répertoires Admin extension host et Public extension host.

  5. Exécutez l’applet de commande suivante pour démarrer la vérification du certificat :

    $pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString 
    
    Start-AzsReadinessChecker -CertificatePath c:\certificates -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
    
  6. Vérifiez la sortie pour voir si tous les certificats réussissent tous les tests.

Importer des certificats hôtes d’extension

Utilisez un ordinateur qui peut se connecter au point de terminaison privilégié Azure Stack Hub pour les étapes suivantes. Vérifiez que vous avez accès aux nouveaux fichiers de certificat à partir de cet ordinateur.

  1. Utilisez un ordinateur qui peut se connecter au point de terminaison privilégié Azure Stack Hub pour les étapes suivantes. Veillez à accéder aux nouveaux fichiers de certificat à partir de cet ordinateur.

  2. Ouvrez PowerShell ISE pour exécuter les blocs de script suivants.

  3. Importez le certificat pour le point d'accès d'administration.

    
    $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. Importez le certificat pour le point de terminaison d’hébergement :

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

Mettre à jour la configuration DNS

Remarque

Cette étape n’est pas nécessaire si vous avez utilisé la délégation de zone DNS pour l’intégration DNS.

Si des enregistrements A hôtes individuels ont été configurés pour publier des points de terminaison Azure Stack Hub, vous devez créer deux enregistrements A hôtes supplémentaires :

Protocole Internet (IP) Nom d’hôte Type
<IP> *.Adminhosting.<Région>.<FQDN> A
<IP> *. Hébergement.<Région>.<FQDN> A

Les adresses IP allouées peuvent être récupérées à l’aide du point de terminaison privilégié en exécutant l’applet de commande Get-AzureStackStampInformation.

Ports et protocoles

L’article Intégration du centre de données Azure Stack Hub - Publier des points de terminaison couvre les ports et les protocoles qui nécessitent une communication entrante pour publier Azure Stack Hub avant le déploiement de l’hôte d’extension.

Publier de nouveaux points de terminaison

Il existe deux nouveaux points de terminaison à publier via votre pare-feu. Les IP allouées depuis le pool VIP public peuvent être récupérées à l'aide du code suivant, qui doit être exécuté à partir du point de terminaison privilégié de l'environnement 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

Exemple de sortie

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

Remarque

Apportez cette modification avant d’activer l’hôte d’extension. Cela permet aux portails Azure Stack Hub d’être accessibles en continu.

Point de terminaison (VIP) Protocole Ports maritimes
Hébergement Admin HTTPS 443
Hébergement HTTPS 443

Mettre à jour les règles de publication existantes (post-activation de l’hôte d’extension)

Remarque

Le package de mise à jour Azure Stack Hub 1808 n’active pas encore l’hôte d’extension. Il vous permet de préparer l’hôte d’extension en important les certificats requis. Ne fermez aucun port avant que l’hôte d’extension soit automatiquement activé via un package de mise à jour Azure Stack Hub après la mise à jour 1808.

Les ports de point de terminaison existants suivants doivent être fermés dans vos règles de pare-feu existantes.

Remarque

Il est recommandé de fermer ces ports après la validation réussie.

Point de terminaison (VIP) Protocole Ports maritimes
Portail (administrateur) HTTPS 12495
12499
12646
12647
12648
12649
12650
13001
13003
13010
13011
13012
13020
13021
13026
30015
Portail (utilisateur) HTTPS 12495
12649
13001
13010
13011
13012
13020
13021
30015
13003
Azure Resource Manager (administrateur) HTTPS 30024
Azure Resource Manager (utilisateur) HTTPS 30024

Étapes suivantes