Freigeben über


Zertifikatanforderungen für SQL Server

In diesem Artikel werden die Zertifikatanforderungen für SQL Server und die Überprüfung beschrieben, ob ein Zertifikat diese Anforderungen erfüllt.

Zertifikatanforderungen für die SQL Server-Verschlüsselung

Für die Verwendung von Transport Layer Security (TLS) für die SQL Server-Verschlüsselung müssen Sie ein Zertifikat (eines der drei digitalen Typen) bereitstellen, das die folgenden Bedingungen erfüllt:

  • Das Zertifikat muss sich entweder im Zertifikatspeicher des lokalen Computers oder im Zertifikatspeicher des SQL Server-Dienstkontos befinden. Es wird empfohlen, den lokalen Computerzertifikatspeicher zu speichern, da keine Zertifikate mit SQL Server-Startkontoänderungen neu konfiguriert werden.

  • Das SQL Server-Dienstkonto muss über die erforderliche Berechtigung für den Zugriff auf das TLS-Zertifikat verfügen. Weitere Informationen finden Sie unter Konfigurieren des SQL Server-Datenbankmoduls zum Verschlüsseln von Verbindungen.

  • Die aktuelle Systemzeit muss nach dem Wert der Eigenschaft "Valid from" und vor dem Wert der Eigenschaft "Valid to" des Zertifikats liegen. Weitere Informationen finden Sie unter "Abgelaufene Zertifikate".

    Hinweis

    Das Zertifikat muss für die Serverauthentifizierung vorgesehen sein. Dazu muss die Eigenschaft "Enhanced Key Usage " des Zertifikats die Serverauthentifizierung (1.3.6.1.5.5.7.3.1) angeben.

  • Das Zertifikat muss mit der KeySpec-Option von AT_KEYEXCHANGE erstellt werden. Dies erfordert ein Zertifikat, das einen älteren kryptografischen Speicheranbieter zum Speichern des privaten Schlüssels verwendet. In der Regel umfasst die Schlüsselverwendungseigenschaft (KEY_USAGE) des Zertifikats auch schlüsselbasierte Enzipherierung (CERT_KEY_ENCIPHERMENT_KEY_USAGE) und eine digitale Signatur (CERT_DIGITAL_SIGNATURE_KEY_USAGE).

  • Die Subject-Eigenschaft des Zertifikats muss angeben, dass der gemeinsame Name (CN) mit dem Hostnamen oder vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) des Servercomputers übereinstimmt. Wenn Sie den Hostnamen verwenden, muss das DNS-Suffix im Zertifikat angegeben werden. Wenn SQL Server auf einem Failovercluster ausgeführt wird, muss der allgemeine Name mit dem Hostnamen oder dem FQDN des virtuellen Servers übereinstimmen, und die Zertifikate müssen auf allen Knoten im Failovercluster bereitgestellt werden. Wenn Sie z. B. über einen Cluster mit zwei Knoten verfügen, die test1.*<your company>*.com und test2.*<your company>*.com benannt sind, und einen virtuellen Server mit dem Namen virtsql haben, müssen Sie ein Zertifikat für virtsql.*<your company>*.com auf beiden Knoten installieren. Weitere Informationen zu SQL-Clustern finden Sie unter Vor der Installation des Failover-Clusterings.

  • Wenn Sie eine Verbindung mit einem Verfügbarkeitsgruppenlistener herstellen, sollten die Zertifikate, die für jeden teilnehmenden Serverknoten im Failovercluster bereitgestellt werden, auch über eine Liste aller Verfügbarkeitsgruppenlistener verfügen, die im alternativen Antragstellernamen des Zertifikats festgelegt sind. Weitere Informationen finden Sie unter Listener und TLS/SSL-Zertifikate. Weitere Informationen zu SQL AlwaysOn finden Sie unter "Herstellen einer Verbindung mit einem AlwaysOn-Verfügbarkeitsgruppenlistener".

  • Der Subject Alternative Name sollte alle Namen enthalten, die Ihre Clients zum Herstellen einer Verbindung mit einer SQL Server-Instanz verwenden könnten. Wenn Sie Verfügbarkeitsgruppen verwenden, sollte der alternative Antragstellername den NetBIOS- und vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) des Localhosts und der erstellten Listener enthalten.

Der Client muss in der Lage sein, den Besitz des vom Server verwendeten Zertifikats zu überprüfen. Wenn der Client über das Öffentliche Schlüsselzertifikat der Zertifizierungsstelle verfügt, die das Serverzertifikat signiert hat, ist keine weitere Konfiguration erforderlich. Microsoft Windows enthält die Öffentlichen Schlüsselzertifikate vieler Zertifizierungsstellen. Wenn das Serverzertifikat von einer öffentlichen oder privaten Zertifizierungsstelle signiert wurde, für die der Client nicht über das Öffentliche Schlüsselzertifikat verfügt, müssen Sie das Zertifikat des öffentlichen Schlüssels der Zertifizierungsstelle installieren, das das Serverzertifikat auf jedem Client signiert hat, der eine Verbindung mit SQL Server herstellen soll.

Wichtig

SQL Server wird nicht gestartet, wenn ein Zertifikat im Computerspeicher vorhanden ist, aber nur einige Anforderungen in der obigen Liste erfüllt und wenn es manuell für die Verwendung durch SQL Server Configuration Manager oder über Registrierungseinträge konfiguriert ist. Wählen Sie ein anderes Zertifikat aus, das alle Anforderungen erfüllt, oder entfernen Sie das Zertifikat, das von SQL Server verwendet wird, bis Sie ein Zertifikat bereitstellen können, das anforderungen erfüllt oder ein selbst generiertes Zertifikat wie in SQL Server generierte selbstsignierte Zertifikate verwendet.

Überprüfen, ob ein Zertifikat die Anforderungen erfüllt

In SQL Server 2019 (15.x) und höheren Versionen überprüft SQL Server Configuration Manager automatisch alle Zertifikatanforderungen während der Konfigurationsphase selbst. Wenn SQL Server nach der Konfiguration eines Zertifikats erfolgreich gestartet wird, ist es ein guter Hinweis darauf, dass SQL Server dieses Zertifikat verwenden kann. Einige Clientanwendungen verfügen jedoch möglicherweise noch über andere Anforderungen für Zertifikate, die für die Verschlüsselung verwendet werden können, und Je nach verwendeter Anwendung treten möglicherweise unterschiedliche Fehler auf. In diesem Szenario müssen Sie die Supportdokumentation der Clientanwendung überprüfen, um weitere Informationen zum Thema zu erhalten.

Sie können eine der folgenden Methoden verwenden, um die Gültigkeit des Zertifikats für die Verwendung mit SQL Server zu überprüfen:

  • sqlcheck tool: sqlcheck ist ein Befehlszeilentool, das die aktuellen Computer- und Dienstkontoeinstellungen untersucht und einen Textbericht an das Konsolenfenster erstellt, das für die Problembehandlung verschiedener Verbindungsfehler nützlich ist. Die Ausgabe enthält die folgenden Informationen zu Zertifikaten:

    Details for SQL Server Instance: This Certificate row in this section provides more details regarding the certificate being used by SQL Server (Self-generated, hard-coded thumbprint value, etc.).
    
    Certificates in the Local Computer MY Store: This section shows detailed information regarding all the certificates found in the computer certificate store.
    

    Weitere Informationen zu den Funktionen des Tools und zum Herunterladen von Anweisungen finden Sie unter "Willkommen beim CSS_SQL_Networking_Tools Wiki".

  • certutil tool: certutil.exe ist ein Befehlszeilenprogramm, das als Teil der Zertifikatdienste installiert ist. Sie können certutil.exe verwenden, um Zertifikatinformationen auszugeben und anzuzeigen. Verwenden Sie die -v Option, um detaillierte Informationen zu erhalten. Weitere Informationen finden Sie unter certutil.

  • Zertifikat-Snap-In: Sie können auch das Snap-In "-Fenster "Zertifikate" verwenden, um weitere Informationen zu Zertifikaten in verschiedenen Zertifikatspeichern auf dem Computer anzuzeigen. Dieses Tool zeigt jedoch keine KeySpec-Informationen an. Weitere Informationen zum Anzeigen von Zertifikaten mit dem MMC-Snap-In finden Sie unter How to: View certificates with the MMC snap-in.

Weitere Informationen

Abgelaufene Zertifikate

SQL Server überprüft nur die Gültigkeit der Zertifikate zum Zeitpunkt der Konfiguration. Beispielsweise können Sie Configuration Manager auf SQL Server 2019 (15.x) und höheren Versionen nicht verwenden, um ein abgelaufenes Zertifikat bereitzustellen. SQL Server wird weiterhin ohne Probleme ausgeführt, wenn das Zertifikat abläuft, nachdem es bereits bereitgestellt wurde. Einige Clientanwendungen wie Power BI überprüfen jedoch die Gültigkeit des Zertifikats für jede Verbindung und lösen einen Fehler aus, wenn die SQL Server-Instanz für die Verwendung eines abgelaufenen Zertifikats für die Verschlüsselung konfiguriert ist. Es wird empfohlen, kein abgelaufenes Zertifikat für die SQL Server-Verschlüsselung zu verwenden.