it-swarm.com.de

Der SQL Server-Dienst wird nach dem Deaktivieren von TLS 1.0 und SSL 3.0 nicht gestartet

Aus Sicherheitsgründen haben wir TLS 1.0 und ältere Protokolle in unseren Fenstern deaktiviert und nur TLS 1.1 und TLS 1.2 unter dem folgenden Registrierungspfad aktiviert: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols Danach hat der SQL-Dienst gewonnen Beginnen Sie nicht mit folgendem Fehler:

2015-02-13 17:35:10.12 spid13s     The server could not load the certificate it needs to initiate an SSL connection. It returned the following error: 0x80090331. Check certificates to make sure they are valid.
2015-02-13 17:35:10.12 spid13s     Error: 26014, Severity: 16, State: 1.
2015-02-13 17:35:10.12 spid13s     Unable to load user-specified certificate [Cert Hash(sha1) "9B49E2FB65EE880F7C8818A90187F572566C9213"]. The server will not accept a connection. You should verify that the certificate is correctly installed. See "Configuring Certificate for Use by SSL" in Books Online.
2015-02-13 17:35:10.12 spid13s     Error: 17182, Severity: 16, State: 1.
2015-02-13 17:35:10.12 spid13s     TDSSNIClient initialization failed with error 0x80092004, status code 0x80. Reason: Unable to initialize SSL support. Cannot find object or property. 
2015-02-13 17:35:10.12 spid13s     Error: 17182, Severity: 16, State: 1.
2015-02-13 17:35:10.12 spid13s     TDSSNIClient initialization failed with error 0x80092004, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for previous errors. Cannot find object or property. 
2015-02-13 17:35:10.12 spid13s     Error: 17826, Severity: 18, State: 3.
2015-02-13 17:35:10.12 spid13s     Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.
2015-02-13 17:35:10.12 spid13s     Error: 17120, Severity: 16, State: 1.
2015-02-13 17:35:10.12 spid13s     SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.

Im Event Manager sehen wir folgenden Ablauf (mit erhöhter Schannel-Protokollierung):

Info – Schannel – Creating an SSL client credential.
Info – Schannel – Creating an SSL server credential.
Error - Schannel - A fatal error occurred while creating an SSL client credential. The internal error state is 10013.

Der Schannel-Fehler detailliert:

<Event xmlns="http://schemas.Microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Schannel" Guid="{1F678132-5938-4686-9FDC-C8FF68F15C85}" /> 
    <EventID>36871</EventID> 
    <Version>0</Version> 
    <Level>2</Level> 
    <Task>0</Task> 
    <Opcode>0</Opcode> 
    <Keywords>0x8000000000000000</Keywords> 
    <TimeCreated SystemTime="2015-02-16T15:22:16.166776400Z" /> 
    <EventRecordID>5943102</EventRecordID> 
    <Correlation /> 
    <Execution ProcessID="712" ThreadID="772" /> 
    <Channel>System</Channel> 
    <Computer>(deleted)</Computer> 
    <Security UserID="S-1-5-18" /> 
  </System>
  <EventData>
    <Data Name="Type">server</Data> 
    <Data Name="ErrorState">10013</Data> 
  </EventData>
</Event>

Mit WireShark können keine Client- oder Server-Hello-Nachrichten angezeigt werden. Es scheint, dass der Fehler vor der TLS-Aushandlung auftritt - wahrscheinlich während des Parsens des Serverzertifikats.

Bei Verwendung von ProccessMonitor liest der Dienst sqlserver.exe das Zertifikat aus der Registrierung, liest dann CRLs (keine), CTLs (keine) und folgt dann der ersten Fehlerprotokollmeldung. Hier sind die wenigen letzten Protokolle von ProcMon vor dem ersten Protokollfehler:

12:22:09.8165314 PM sqlservr.exe    23256   RegCloseKey HKLM\SOFTWARE\Microsoft\SystemCertificates\MY\Certificates  SUCCESS 
12:22:09.8165667 PM sqlservr.exe    23256   RegQueryKey HKLM\SOFTWARE\Microsoft\SystemCertificates\MY\CRLs  SUCCESS Query: Cached, SubKeys: 0, Values: 0
12:22:09.8166280 PM sqlservr.exe    23256   RegQueryKey HKLM\SOFTWARE\Microsoft\SystemCertificates\MY\CTLs  SUCCESS Query: Cached, SubKeys: 0, Values: 0
12:31:01.0048783 PM sqlservr.exe    9928    RegCloseKey HKLM\SOFTWARE\Microsoft\SystemCertificates\MY   SUCCESS 
12:22:09.8177144 PM sqlservr.exe    23256   WriteFile   C:\Program Files\Microsoft SQL Server\MSSQL11.SQLSERVER2014\MSSQL\Log\ERRORLOG  SUCCESS Offset: 7,530, Length: 422

Wir haben auch versucht, den SQL Server mit einem Zertifikat von Verisign einzurichten (30-Tage-Testversion). Wir haben alle Einstellungen wie beschrieben vorgenommen hier

Und auch wir folgten der Antwort wie gezeigt hier (kamen durch Referenz von hier ).

Leider kein Glück. Immer noch der gleiche Fehler.

Wir haben auch versucht, die "Force Encryption" im SQL-Konfigurationsmanager zu deaktivieren, und wir haben das Zertifikat daraus entfernt. Der SQL Server versucht jedoch, ein selbstsigniertes Zertifikat zu erstellen, und schlägt mit demselben Fehlercode 0x80090331 fehl.

Ich weiß, dass eine ähnliche Frage gestellt wird hier , aber sie wird selbst akzeptiert, ohne TLS 1.0 zu deaktivieren:

Noch ein Hinweis: Mit denselben Einstellungen und demselben Zertifikat funktioniert alles einwandfrei, wenn TLS 1.0 AKTIVIERT ist. Wenn TLS 1.0 deaktiviert ist, schlägt dies fehl. Es scheint also, dass TLS 1.1+ etwas in unserem Zertifikat nicht mag oder dass SQL Server TLS 1.1+ nicht mag.

Wir können die Aktivierung von TLS 1.0 nicht zulassen. Jede Hilfe wäre sehr dankbar.

22
Jiri Mares

Wie in der anderen Antwort: Sie benötigen eine aktuelle CU für TLS1.2. Siehe https://support.Microsoft.com/en-us/kb/3052404 :

  • Kumulatives Update 8 für SQL Server 2014
  • Kumulatives Update 1 für SQL Server 2014 SP1
  • Kumulatives Update 6 für SQL Server 2012 SP2
  • Kumulatives Update 7 für SQL Server 2014

Nachdem Sie nur TLS 1.2 aktiviert haben, treten möglicherweise zwei Fehler auf:

  1. Der SQL Server 2014-Agent wird nicht gestartet. Lösung: Installieren Sie SQL Server 2012 SNAC von einer der 2012 CUs ...
  2. SQL Server Management Studio kann keine Verbindung herstellen. Lösung: Installieren Sie .net Framework v4.6.

Außerdem müssen Sie den SNAC/OBDC-Treiber auf allen Clients aktualisieren, die eine Verbindung zum SQL Server herstellen.

15
Jens W.

SQL Server unterstützt nur SSL 3.0 und TLS 1.0. Sie müssen mindestens eines davon aktiviert haben, sonst kann SQL Server nicht gestartet werden. SQL Server unterstützt TLS 1.1, 1.2 usw. nicht, sondern verwendet speziell TLS 1.0.

Sie haben hier die Möglichkeit, SSL 3.0 und/oder TLS 1.0 zu aktivieren. Ich fürchte, es gibt keinen anderen Weg.

Prost Mat

8
Mat

Ab dem 29. Januar unterstützt Microsoft SQL Server TLS 1.2 für SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 und SQL Server 2014 sowie wichtige Client-Treiber wie Server Native Client, Microsoft ODBC Treiber für SQL Server, Microsoft JDBC-Treiber für SQL Server und ADO.NET (SqlClient).

Blogbeitrag zur Veröffentlichung: http://blogs.msdn.com/b/sqlreleaseservices/archive/2016/01/29/tls-1-2-support-for-sql-server-2008-2008- r2-2012-and-2014.aspx

Liste der Builds, die TLS 1.2 unterstützen, sowie die Download-Speicherorte für Client- und Serverkomponenten (KB3135244): http://support.Microsoft.com/kb/3135244

6
Amit Banerjee

Zwar muss in SQL eine dieser Optionen aktiviert sein, es gibt jedoch eine Problemumgehung.

  • Öffnen Sie gpedit.msc. Doppelklicken Sie im Editor für lokale Gruppenrichtlinien unter dem Knoten Computerkonfiguration auf Windows-Einstellungen, und doppelklicken Sie dann auf Sicherheitseinstellungen.
  • Doppelklicken Sie unter dem Knoten Sicherheitseinstellungen auf Lokale Richtlinien, und klicken Sie dann auf Sicherheitsoptionen.
  • Doppelklicken Sie im Detailbereich auf Systemkryptografie: Verwenden Sie FIPS-kompatible Algorithmen zum Verschlüsseln, Hashing und Signieren.
  • Klicken Sie im Dialogfeld Systemkryptografie: FIPS-kompatible Algorithmen zum Verschlüsseln, Hashing und Signieren verwenden auf Aktiviert und dann auf OK, um das Dialogfeld zu schließen. Schließen Sie den lokalen Gruppenrichtlinien-Editor.
4
rmathus