SSTP VPN mit Let’s Encrypt Zertifikaten

1b0019bed9bd4eecafa022b57f31bb6e

SSTP erfordert ein vom Client akzeptiertes SSL Zertifikat. Wer eine interne Zertifizierungsstelle hat, kann diese verwenden. Dabei muss nur sichergestellt werden, das der Client die Sperrliste auch im Internet erreichen kann. An dieser Anforderung scheitern viele. Warum also nicht ein anderes Zertifikat verwenden, zum Beispiel ein kostenfreies von Let’s encrypt.

Dieser Artikel setzt einen Microsoft Windows Routing und RAS Server mit Konfigurierten SSTP VPN voraus. Wenn Sie den noch nicht installiert haben, empfehle ich ihnen einen Blick in den Artikel: VPN Server mit Windows Server 2022.

Installation von Let’s Encrypt Zertifikaten

Um Let’s Encrypt zu steuern verwende ich das passende PowerShell Module Posh-ACME. Die Installation erfolgt am einfachsten über die PowerShell Gallery. Dazu führen Sie in einer PowerShell Session mit administrativen Berechtigungen die folgenden Befehle aus:

Install-PackageProvider -Name NuGet -Force
Install-Module -Name Posh-ACME -Scope AllUsers
20211111 RAS2022 RRAS LetsEncrypt 01

Jetzt wird das Zertifikat beantragt. Während diesen Prozesses muss ein entsprechender Prüf-Eintrag in den DNS Eingetragen werden. Der erforderlichen Eintrag wird vom PowerShell Skript angezeigt. Sorgen Sie also dafür das Sie Zugang zu der Konfiguration der DNS-Zone haben die Sie verwenden möchten. Und achten sie auf Tipp-Fehler. Bedenken Sie auch, das Änderungen im DNS manchmal etwas länger brauchen, Also lieber nach der Änderung noch einen Kaffee trinken. Die Befehle sind:

Set-PAServer LE_Prod
New-PACertificate -Domain "vpnhost.domain.tld" -Contact "[email protected]" -CertKeyLength ec-256 -AcceptTOS -Install
20211111 RAS2022 RRAS LetsEncrypt 02

Jetzt können Sie in der Zertifikate Verwaltung für Computer auch das entsprechende Zertifikat sehen. Wie üblich bei Let’s Encrypt beträgt die Laufzeit nur 3 Monate.

20211111 RAS2022 RRAS LetsEncrypt 03

Damit der VPN Server auch das richtige Zertifikat benutzt, benötigen wir wieder etwas PowerShell:

$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match "vpnhost.domain.tld"}
Import-Module RemoteAccess
Stop-Service RemoteAccess
Set-RemoteAccess -SslCertificate $cert
Start-Service RemoteAccess
20211111 RAS2022 RRAS LetsEncrypt 04

Erneuerung von Zertifikaten

Die Erneuerung kann ganz Einfach mit dem Befehl „Submit-Renewal“ erfolgen, allerdings erst 5 Wochen vor Ablauf. Aber auch hier muss die Konfiguration für die Zertifikatszuweisung erneut durchgeführt werden. Hintergrund ist das Let Encrypt neue Zertifikate ausstellt, statt die bestehenden zu verlängern.

Das zu erstellende Skript muss als geplante Aufgabe im selben Benutzerkontext (Inkl. Administrativer Rechte!) ausgeführt werden, wie der Request. Ansonsten fehlt das ACME Profil mit den benötigten Informationen. Ein Musterskript könnte so aussehen:

Import-Module RemoteAccess
Stop-Service RemoteAccess
Submit-Renewal
$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match "vpnhost.domain.tld" -and $_.NotBefore -lt $(Get-Date) -and $_.NotAfter -gt $(Get-Date) }
Set-RemoteAccess -SslCertificate $cert
Start-Service RemoteAccess

Kommentare

Eine Antwort zu „SSTP VPN mit Let’s Encrypt Zertifikaten“

  1. Danke für den wertvollen Tipp mit Let Encryp. Ich betreibe eine Website für Fahrdienste und bezahlte meinem Hoster bisher jährlich über 100 Euro fürs Zertifikat.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

New articles in english

Themen

Active Directory Administrative Vorlagen Anleitung AppV5 Autopilot Azure Azure AD ConfigMgr Deployment GPO Gruppenrichtlinien Guide How-To Linux Microsoft Microsoft Intune Office Office365 PowerShell Public Preview SCCM2012R2 SCSM2012R2 ServiceMgr Sicherheit TechNet Windows Windows 10 Windows10 Windows Server 2012 Windows Server 2012R2

Hinweise zum Affiliate-Marketing

Auf diesen Seiten werden auch Affiliate Marketing Links angezeigt. Diese sind meistens an dem kleinen „€“ oder einem „*“ dahinter zu erkennen. Der Betreiber dieser Seite erhält beim Kauf über diesen Link eine Provision, ohne das es den Verkaufspreis beeinflusst. Diese Einnahmen tragen zur Finanzierung der Seite bei.