How-to: Azure VPN Gateway – P2S Zertifikate erneuern

⚠️ Aktualitätshinweis: Diese Anleitung basiert auf dem Stand zum Zeitpunkt der Erstellung und kann durch Produktupdates überholt werden. Im Zweifelsfall ist die offizielle Hersteller-Dokumentation massgebend.

🔗 Generate and export certificates for P2S – Microsoft Learn

Ziel

Erneuerung von P2S-Zertifikaten für eine Azure VPN Gateway Point-to-Site Verbindung — entweder nur das Client-Zertifikat (Normalfall) oder das Root-Zertifikat inkl. neuem Client-Zertifikat (Ausnahmefall).

Konzept & Zertifikatshierarchie

Bei einer P2S-Verbindung kommen zwei Zertifikatstypen zum Einsatz:

Root-Zertifikat Client-Zertifikat
Zweck Vertrauensbasis im Azure Gateway Authentifizierung des Endusers
Ablage Azure Portal (Public Key) + IT Glue (PFX) Auf dem PC des Endusers
Gültigkeit 5 Jahre (Empfehlung) 1 Jahr (Empfehlung)

Abhängigkeit: Das Client-Zertifikat wird vom Root-Zertifikat signiert (Parameter -Signer in PowerShell). Azure vertraut dem Client nur dann, wenn es das zugehörige Root-Zertifikat im Gateway hinterlegt hat. Das Root-Zertifikat ist bewusst länger gültig, damit Client-Zertifikate mehrfach davon abgeleitet werden können, ohne das Root im Azure Portal anzufassen.

Use Case A – Client-Zertifikat erneuern (Normalfall, jährlich)

Voraussetzungen:

  • Windows-PC mit PowerShell
  • Root-Zertifikat PFX aus IT Glue verfügbar

Schritt 1: Root-Zertifikat aus IT Glue importieren

Import-PfxCertificate `
    -FilePath "[Voller Pfad zur Root-PFX-Datei]" `
    -CertStoreLocation "Cert:\CurrentUser\My" `
    -Password (ConvertTo-SecureString -String "[Passwort]" -Force -AsPlainText)

📝 Ersetzen: [Voller Pfad zur Root-PFX-Datei] (aus IT Glue), [Passwort] (aus IT Glue Password-Eintrag)

Schritt 2: Importiertes Root-Zertifikat auswählen

Folgender Befehl öffnet ein grafisches Auswahlfenster mit allen gültigen Zertifikaten im persönlichen Store — das korrekte Root-Zertifikat anhand von Subject/Ablaufdatum auswählen und bestätigen:

$cert = Get-ChildItem -Path "Cert:\CurrentUser\My" | `
    Where-Object { $_.HasPrivateKey -eq $true -and $_.NotAfter -gt (Get-Date) } | `
    Select-Object Subject, Thumbprint, NotAfter | `
    Out-GridView -PassThru | `
    ForEach-Object { Get-ChildItem "Cert:\CurrentUser\My\$($_.Thumbprint)" }

📝 Keine Platzhalter — im Auswahlfenster das Root-Zertifikat anhand von Subject/Ablaufdatum identifizieren.

Schritt 3: Neues Client-Zertifikat ableiten

$clientcert = New-SelfSignedCertificate `
    -Type Custom `
    -Subject "CN=p2s-client-[Kürzel Firma]-[Kürzel User]-[Jahr]-[Ablaufjahr]" `
    -KeyExportPolicy Exportable `
    -CertStoreLocation "Cert:\CurrentUser\My" `
    -Signer $cert `
    -HashAlgorithm sha256 `
    -NotAfter (Get-Date).AddYears(1)

📝 Ersetzen: [Kürzel Firma], [Kürzel User], [Jahr], [Ablaufjahr] — z.B. p2s-client-dzs-dhuber-2026-2027

ℹ️ -Signer $cert stellt die Abhängigkeit her: das Client-Zertifikat wird vom Root signiert, damit Azure ihm vertraut.

Schritt 4: Thumbprint dokumentieren

Den Thumbprint des Client-Zertifikats notieren — wird für eine allfällige Revocation benötigt:

$clientcert.Thumbprint

📝 Output in IT Glue beim Client-Zertifikat-Eintrag festhalten.

Schritt 5: Client-Zertifikat als PFX exportieren

$clientpassword = ConvertTo-SecureString -String "[Passwort]" -Force -AsPlainText

Export-PfxCertificate `
    -Cert $clientcert `
    -FilePath "[Voller Pfad zur Zieldatei].pfx" `
    -Password $clientpassword `
    -CryptoAlgorithmOption AES256_SHA256

📝 Ersetzen: [Passwort] (sicher wählen, separat kommunizieren), [Voller Pfad zur Zieldatei] — Dateiname analog zum CN des Zertifikats

ℹ️ -CryptoAlgorithmOption AES256_SHA256 statt Standard-3DES verwenden — moderner und kompatibler beim späteren Import.

Schritt 6: PFX beim Enduser installieren

ℹ️ Empfehlung: Remote-Installation durch Raptus via TeamViewer oder Quick Assist. So wird sichergestellt dass der Import korrekt durchgeführt, die PFX-Datei anschliessend gelöscht und der Private Key als NonExportable hinterlegt wird.

Installation via Doppelklick auf die PFX-Datei:

  1. Zertifikatsspeicher: Aktueller Benutzer
  2. Passwort eingeben (separat kommuniziert, z.B. per Telefon)
  3. "Schlüssel als exportierbar markieren" (Mark this key as exportable) — nicht ankreuzen
  4. Importieren bestätigen
  5. PFX-Datei nach erfolgreicher Installation sofort löschen

Falls Remote-Installation nicht möglich: Enduser schriftlich mit obigen Punkten instruieren. Nachfolgend für schnellere Kommunikation ein Entwurf.

Sicherheitshinweise
Zur Gewährung der IT-Sicherheit unseres gemeinsamen Kunden erbitten wir die
Einhaltung folgender Schritte bei der Installation des Zertifikats:

- Während der Installation des PFX haben Sie u.A. die Import-Option
"Mark this key as exportable". Bitte lassen Sie diese Option deaktivert.

- Bitte löschen Sie das PFX direkt nach der Installation auf Ihrem Gerät.

- Bitte löschen Sie das Passwort nach Gebrauch wieder

Falls Sie ein weiteres Zertifikat für weitere Mitarbeitende benötigen,
können wir Ihnen dieses gerne ausstellen. (Ein Zertifikat pro Person
für Audit Zwecke)

Schritt 7: In IT Glue dokumentieren

  • Client-Zertifikat PFX + PEM hinterlegen
  • Thumbprint festhalten
  • Ablaufdatum vermerken

Schritt 8: Revocation im Notfall

Falls das Client-Zertifikat kompromittiert wurde:

  1. Azure Portal → Virtual Network Gateways → VPN Gateway auswählen
  2. Settings → Point-to-site configuration
  3. Unter Revoked certificates: Name + Thumbprint eintragen
  4. Save

→ Der Zugriff des betroffenen Clients wird sofort gesperrt, ohne das Root-Zertifikat anzufassen.

Resultat: Enduser kann sich wieder per VPN verbinden. Das Root-Zertifikat im Azure Portal bleibt unverändert.

Use Case B – Root-Zertifikat ersetzen (Ausnahmefall)

Wann nötig: Root-Zertifikat abgelaufen oder kompromittiert. Erfordert Eingriff im Azure Portal und ein neues Client-Zertifikat für alle betroffenen User.

Voraussetzungen:

  • Zugriff auf Azure Portal (Tenant des Kunden)
  • Windows-PC mit PowerShell

Schritt 1: Neues Root-Zertifikat erstellen

$cert = New-SelfSignedCertificate `
    -Type Custom `
    -Subject "CN=[Name]-p2s-rootcert-[Jahr]-[Ablaufjahr]" `
    -KeyExportPolicy Exportable `
    -CertStoreLocation "Cert:\CurrentUser\My" `
    -KeyUsageProperty Sign `
    -KeyUsage CertSign `
    -HashAlgorithm sha256 `
    -NotAfter (Get-Date).AddYears(5)

📝 Ersetzen: [Name] (z.B. Tenant-Kürzel), [Jahr], [Ablaufjahr] — z.B. eslamsso-p2s-rootcert-2026-2031

Schritt 2: Public Key exportieren (.cer) — für Azure Portal

Export-Certificate `
    -Cert $cert `
    -FilePath "[Voller Pfad zur Zieldatei].cer"

📝 Ersetzen: [Voller Pfad zur Zieldatei] — Dateiname analog zum CN des Zertifikats

Schritt 3: Root inkl. Private Key als PFX exportieren — für IT Glue

$password = ConvertTo-SecureString -String "[Passwort]" -Force -AsPlainText

Export-PfxCertificate `
    -Cert $cert `
    -FilePath "[Voller Pfad zur Zieldatei].pfx" `
    -Password $password `
    -CryptoAlgorithmOption AES256_SHA256

📝 Ersetzen: [Passwort] (sicher wählen, in IT Glue separat ablegen), [Voller Pfad zur Zieldatei]

ℹ️ -CryptoAlgorithmOption AES256_SHA256 statt Standard-3DES verwenden — moderner und kompatibler beim späteren Import.

Schritt 4: Base64/PEM des Root-Zertifikats erzeugen — zum Einfügen in Azure

$base64 = [Convert]::ToBase64String($cert.RawData)
$pem = "-----BEGIN CERTIFICATE-----`n" + $base64 + "`n-----END CERTIFICATE-----"
$pem | Out-File -FilePath "[Voller Pfad zur Zieldatei].pem" -Encoding ascii

📝 Ersetzen: [Voller Pfad zur Zieldatei]. Das PEM-File wird für IT Glue gespeichert.

⚠️ Wichtig: Für das Azure Portal wird der reine Base64-String (Variable $base64, ohne BEGIN/END-Zeilen, als eine Zeile) benötigt — nicht das vollständige PEM. Diesen Wert für Schritt 6 direkt aus $base64 kopieren.

Schritt 5: Neues Root-Zertifikat im Azure Portal hinterlegen

  1. Azure Portal → Virtual Network Gateways → VPN Gateway des Kunden auswählen
  2. Settings → Point-to-site configuration
  3. Unter Root certificates: neuen Eintrag anlegen — Name: [Name]-p2s-rootcert-[Jahr]-[Ablaufjahr], Public certificate data: der reine Base64-String aus Schritt 4
  4. Save (dauert einige Minuten)

ℹ️ Das alte Root-Zertifikat noch nicht löschen — erst nach erfolgreichem Test durch den Enduser.

Schritt 6: Neues Client-Zertifikat erstellen und liefern

Weiter ab Use Case A, Schritt 3 — mit dem neu erstellten $cert als Root.

Schritt 7: Altes Root-Zertifikat in Azure entfernen

Nach erfolgreichem VPN-Test durch den Enduser: altes Root-Zertifikat in der Point-to-site configuration löschen.

Schritt 8: In IT Glue dokumentieren

  • Root-Zertifikat PFX + PEM + .cer hinterlegen
  • PFX-Passwort separat als Password-Eintrag
  • Ablaufdatum und CN vermerken
  • Hinweis hinterlegen: "Für neue Client-Zertifikate PFX importieren und ab Use Case A, Schritt 1 vorgehen"

Resultat: Root-Zertifikat ersetzt, neues Client-Zertifikat beim Enduser installiert, altes Root aus Azure entfernt, alles in IT Glue dokumentiert.

War dieser Beitrag hilfreich?
0 von 0 fanden dies hilfreich

Kommentare

0 Kommentare

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.

Beiträge in diesem Abschnitt