SQL Server TLS-Zertifikate mit PowerShell verwalten - Erstellen, Installieren und Erneuern

4 PowerShell-Funktionen fuer das vollstaendige Lebenszyklusmanagement von SQL Server TLS-Zertifikaten: Ablaufdaten ueberwachen, CSR fuer CA-Anforderungen erstellen, CA-Zertifikate installieren und selbstsignierte Zertifikate erneuern.

4 Funktionen TLS / SSL CA-Integration

TLS-Zertifikate - Funktionen im Ueberblick

Get-sqmCertificateReport - SQL Server Zertifikat-Ablaufdaten pruefen PowerShell: Warnung bei baldiger Ablauf

Was macht die Funktion?

Erstellt einen Bericht ueber alle SQL Server Zertifikate: Ablaufdatum, Verwendungszweck (SQL Server Verschluesselung, Endpoint-Verschluesselung fuer AlwaysOn), Aussteller und Fingerabdruck. Zertifikate die innerhalb der naechsten N Tage ablaufen werden als Warnung markiert. Ausgabe als strukturierte Objekte fuer Monitoring-Integration.

Wann nutzt man sie?

Als woeechentlicher automatisierter Check um ablaufende Zertifikate fruehzeitig zu erkennen. In Compliance-Audits zur Dokumentation aller verwendeten Zertifikate und ihrer Gueltigkeit. Nach Zertifikat-Installationen zur Verifikation dass das richtige Zertifikat konfiguriert ist.

Typische Probleme

  • Abgelaufenes TLS-Zertifikat unterbricht verschluesselte SQL Server Verbindungen
  • Zertifikat laeuft nachts ab - kein Administrator bemerkt es sofort
  • Selbstsignierte Zertifikate in Produktionsumgebungen ohne Monitoring-Coverage

Vorteile

  • Fruehzeitige Warnung verhindert ungeplante Verbindungsausfaelle durch abgelaufene Zertifikate
  • Ueberwacht alle Zertifikate inklusive AlwaysOn-Endpoint-Zertifikate
  • Konfigurierbare Warnschwelle (z.B. 30 oder 60 Tage vor Ablauf)
# Zertifikat-Report mit 30-Tage-Warnschwelle
Get-sqmCertificateReport -SqlInstance "SQL01" -WarnDaysBeforeExpiry 30

# Farm-weiter Report aller Instanzen
Get-Content "instanzen.txt" | Get-sqmCertificateReport -WarnDaysBeforeExpiry 60

Install-sqmCertificate - SQL Server Zertifikat installieren und konfigurieren PowerShell: CA oder selbstsigniert

Was macht die Funktion?

Installiert ein Zertifikat (von CA ausgestellt oder selbstsigniert) in den lokalen Zertifikat-Store und konfiguriert SQL Server fuer die Verwendung dieses Zertifikats zur TLS-Verschluesselung. Setzt die korrekten Berechtigungen fuer den SQL Server Service Account auf den privaten Schluessel und erstellt einen Neustart-Plan.

Wann nutzt man sie?

Nach Erhalt eines neuen CA-Zertifikats als Ersatz fuer ein ablaufendes Zertifikat. Bei der Ersteinrichtung der TLS-Verschluesselung fuer eine neue SQL Server Instanz. Wenn ein Zertifikat auf mehrere SQL Server Nodes (AlwaysOn-Cluster) verteilt werden muss.

Typische Probleme

  • SQL Server Service Account hat keinen Zugriff auf privaten Schluessel - SQL Server startet nicht
  • Zertifikat importiert aber SQL Server nicht auf Verwendung konfiguriert - keine Verschluesselung
  • Neustart nach Zertifikat-Aenderung vergessen - altes Zertifikat weiterhin aktiv

Vorteile

  • Automatische Rechtevergabe fuer SQL Server Service Account auf privaten Schluessel
  • Vollstaendige Konfiguration inkl. SQL Server Registry-Eintrag in einem Befehl
  • Verifikation nach der Installation: SQL Server verwendet tatstaechlich das neue Zertifikat
# CA-Zertifikat (PFX) installieren und SQL Server konfigurieren
Install-sqmCertificate -SqlInstance "SQL01" -CertificatePath "C:\Certs\sql01.pfx" -PfxPassword "SecurePass123"

# Zertifikat installieren ohne sofortigen SQL Server Neustart
Install-sqmCertificate -SqlInstance "SQL01" -CertificatePath "C:\Certs\sql01.pfx" -NoRestart

New-sqmCertificateRequest - SQL Server CSR erstellen PowerShell: Certificate Signing Request und Bestelldatenblatt fuer CA

Was macht die Funktion?

Erstellt einen CSR (Certificate Signing Request) fuer ein neues SQL Server TLS-Zertifikat. Generiert den privaten Schluessel und die CSR-Datei gemaess den konfigurierten Unternehmensstandards (Key-Laenge, Algorithmus, Subject). Erstellt zusaetzlich ein Bestelldatenblatt als Word/HTML-Dokument fuer den CA-Antragsprozess.

Wann nutzt man sie?

Wenn ein neues Zertifikat von der unternehmensinternen oder externen CA benoetigt wird. Bei der Erneuerung ablaufender Zertifikate mit einem neuen Schluessel (Key Renewal). Wenn mehrere SQL Server Nodes ein Wildcard-Zertifikat oder ein Zertifikat mit SANs benoetigen.

Typische Probleme

  • CSR mit falschen Subject Alternative Names - Zertifikat passt nicht zu allen AG-Replikaten
  • Falscher Key-Algorithmus oder Key-Laenge - CA lehnt den CSR ab
  • Privater Schluessel geht verloren wenn CSR und Schluessel auf verschiedenen Systemen erstellt werden

Vorteile

  • Korrekte Subject Alternative Names automatisch aus SQL Server Konfiguration ermittelt
  • Standardisierte Bestelldatenblatt-Erstellung fuer den CA-Antragsprozess
  • Privater Schluessel und CSR am selben Ort gespeichert fuer spaetere Installation
# CSR fuer SQL01 erstellen (SAN wird automatisch ermittelt)
New-sqmCertificateRequest -SqlInstance "SQL01" -OutputPath "C:\Certs"

# CSR mit manuellen SANs fuer AlwaysOn-Cluster
New-sqmCertificateRequest -SqlInstance "SQL01" -SAN @("SQL01","SQL02","AG_Listener") -OutputPath "C:\Certs"

New-sqmSqlCertificate - Selbstsigniertes SQL Server Zertifikat erneuern PowerShell fuer DEV, TEST oder interne CA-lose Umgebungen

Was macht die Funktion?

Erstellt ein selbstsigniertes TLS-Zertifikat fuer SQL Server als Erneuerung eines ablaufenden Zertifikats. Generiert das Zertifikat mit konfigurierter Laufzeit, Key-Laenge und korrektem Subject. Installiert es direkt im lokalen Zertifikat-Store und konfiguriert SQL Server fuer die Verwendung des neuen Zertifikats.

Wann nutzt man sie?

In Entwicklungs- oder Test-Umgebungen die keine Zertifikate von einer CA beziehen. Wenn ein selbstsigniertes Zertifikat ablaeuft und schnell erneuert werden muss. In Umgebungen ohne interne CA wo die TLS-Verschluesselung trotzdem erfordert ist.

Typische Probleme

  • Selbstsignierte Zertifikate in Produktionsumgebungen - Clients vertrauen dem Zertifikat nicht
  • Zertifikat-Laufzeit zu kurz gewaehlt - muss bald wieder erneuert werden
  • SQL Server startet nach Zertifikat-Erneuerung nicht weil Service Account Rechte fehlen

Vorteile

  • Vollautomatische Erneuerung ohne manuellen Eingriff moeglich
  • Konfigurierbare Laufzeit (Standard: 2 Jahre) fuer langfristige Planung
  • Automatische Rechtevergabe und SQL Server Konfiguration in einem Schritt
# Selbstsigniertes Zertifikat erstellen und SQL Server konfigurieren
New-sqmSqlCertificate -SqlInstance "SQL01" -ValidityYears 2

# Zertifikat erstellen und sofort installieren (inkl. SQL Server Neustart)
New-sqmSqlCertificate -SqlInstance "SQL01" -ValidityYears 3 -InstallAndRestart
Zurueck zum Index