⚠️ 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:
- Zertifikatsspeicher: Aktueller Benutzer
- Passwort eingeben (separat kommuniziert, z.B. per Telefon)
- "Schlüssel als exportierbar markieren" (Mark this key as exportable) — nicht ankreuzen
- Importieren bestätigen
- 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:
- Azure Portal → Virtual Network Gateways → VPN Gateway auswählen
- Settings → Point-to-site configuration
- Unter Revoked certificates: Name + Thumbprint eintragen
- 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
- Azure Portal → Virtual Network Gateways → VPN Gateway des Kunden auswählen
- Settings → Point-to-site configuration
- Unter Root certificates: neuen Eintrag anlegen — Name:
[Name]-p2s-rootcert-[Jahr]-[Ablaufjahr], Public certificate data: der reine Base64-String aus Schritt 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 +
.cerhinterlegen - 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.
Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.