Supporto di TLS 1.2 per Microsoft SQL Server

Si applica a: SQL Server
Numero KB originale: 3135244

Introduzione

Questo articolo fornisce informazioni sugli aggiornamenti rilasciati da Microsoft per abilitare il supporto di TLS 1.2 per SQL Server 2017 in Windows, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 e SQL Server 2008 R2. Questo articolo elenca anche i provider client supportati. SQL Server 2016, SQL Server 2017 e SQL Server 2019 supportano TLS 1.2 senza la necessità di un aggiornamento.

Sono state segnalate diverse vulnerabilità note rispetto a SSL (Secure Sockets Layer) e versioni precedenti di Transport Layer Security (TLS). È consigliabile eseguire l'aggiornamento a TLS 1.2 per la comunicazione sicura.

Importante

Non sono state segnalate vulnerabilità note per l'implementazione di Microsoft TDS. Si tratta del protocollo di comunicazione usato tra i client SQL Server e il motore di database SQL Server. L'implementazione di Microsoft Schannel di TLS 1.0 (relativa alle vulnerabilità note segnalate a Microsoft a partire dalla data di pubblicazione di questo articolo) è riepilogata nell'implementazione Schannel di TLS 1.0 nell'aggiornamento dello stato di sicurezza di Windows: 24 novembre 2015.

Come sapere se è necessario questo aggiornamento

Usare la tabella seguente per determinare se la versione corrente di SQL Server supporta già TLS 1.2 o se è necessario scaricare un aggiornamento per abilitare il supporto di TLS 1.2. Usare i collegamenti di download nella tabella per ottenere gli aggiornamenti del server applicabili all'ambiente.

Nota

Anche le compilazioni successive a quelle elencate in questa tabella supportano TLS 1.2.

versione SQL Server Build/release iniziale che supporta TLS 1.2 Aggiornamenti correnti con supporto di TLS 1.2 Informazioni aggiuntive
SQL Server 2014 SP1 CU 12.0.4439.1

SP1 CU5
KB3130926 - Aggiornamento cumulativo 5 per SQL Server 2014 SP1

Nota: KB3130926 installerà ora l'ultima cu prodotta per 2014 SP1 (CU13 - KB4019099), che include il supporto di TLS 1.2 e tutti gli hotfix rilasciati fino ad oggi. Se necessario, CU5 è disponibile nel catalogo Windows Update.

Nota: il supporto di TLS 1.2 è disponibile anche in 2014 SP2 e 2014 SP3.
KB3052404 - CORREZIONE: non è possibile usare il protocollo Transport Layer Security versione 1.2 per connettersi a un server che esegue SQL Server 2014 o SQL Server 2012
SQL Server 2014 SP1 GDR 12.0.4219.0

Aggiornamento di SP1 GDR TLS 1.2
Il supporto di TLS 1.2 per SP1 GDR 2014 è disponibile nell'ultimo aggiornamento cumulativo della DDR - KB4019091.

Nota: il supporto di TLS 1.2 è disponibile anche in 2014 SP2 e 2014 SP3.
SQL Server 2014 RTM CU 12.0.2564.0

RTM CU12
KB3130923 - Aggiornamento cumulativo 12 per SQL Server 2014

Nota: KB3130923 installerà ora l'ultima cu rilasciata per 2014 RTM (CU14 - KB3158271 ), che include il supporto di TLS 1.2 e tutti gli hotfix rilasciati fino ad oggi. Se necessario, CU12 è disponibile in Windows Update Catalog.

Nota: il supporto di TLS 1.2 è disponibile anche in 2014 SP2 e 2014 SP3.
KB3052404 - CORREZIONE: non è possibile usare il protocollo Transport Layer Security versione 1.2 per connettersi a un server che esegue SQL Server 2014 o SQL Server 2012
SQL Server 2014 RTM GDR 12.0.2271.0

Aggiornamento di RTM GDR TLS 1.2
Il supporto TLS per SQL 2014 RTM è attualmente disponibile solo installando 2014 SP2 e 2014 SP3.
SQL Server 2012 SP3 GDR 11.0.6216.27

Aggiornamento di SP3 GDR TLS 1.2
Descrizione dell'aggiornamento della sicurezza per SQL Server 2012 SP3 GDR: 16 gennaio 2018

Nota: il supporto di TLS 1.2 è disponibile anche in 2012 SP4.
SQL Server 2012 SP3 CU 11.0.6518.0

SP1 CU3
KB3123299 - Aggiornamento cumulativo 1 per SQL Server 2012 SP3

Nota: KB3123299 installerà ora l'ultima cu rilasciata per 2012 SP3 (CU10 - KB4025925, che include il supporto di TLS 1.2 e tutti gli hotfix rilasciati fino ad oggi). Se necessario, CU1 è disponibile in Windows Update Catalog.

Nota: il supporto di TLS 1.2 è disponibile anche in 2012 SP4.
KB3052404 - CORREZIONE: non è possibile usare il protocollo Transport Layer Security versione 1.2 per connettersi a un server che esegue SQL Server 2014 o SQL Server 2012
SQL Server 2012 SP2 GDR 11.0.5352.0

Aggiornamento di SP2 GDR TLS 1.2
Il supporto di TLS 1.2 per SP2 GDR 2012 è disponibile nell'ultimo aggiornamento cumulativo della DDR - KB3194719.

Il supporto di TLS 1.2 è disponibile anche in 2012 SP3 e 2012 SP4.
SQL Server 2012 SP2 CU 11.0.5644.2

SP2 CU10
KB3120313 - Aggiornamento cumulativo 10 per SQL Server 2012 SP2.

Nota: KB3120313 installerà ora l'ultima cu rilasciata per 2012 SP2 (CU16 - KB3205054, che include il supporto di TLS 1.2 e tutti gli hotfix rilasciati fino ad oggi). Se necessario, CU1 è disponibile in Windows Update Catalog. Nota: il supporto di TLS 1.2 è disponibile anche in 2012 SP3 e 2012 SP4.
KB3052404 - CORREZIONE: non è possibile usare il protocollo Transport Layer Security versione 1.2 per connettersi a un server che esegue SQL Server 2014 o SQL Server 2012
SQL Server 2008 R2 SP3 (solo x86/x64) 10.50.6542.0

Aggiornamento di SP2 TLS 1.2
Il supporto di TLS 1.2 è disponibile nell'aggiornamento cumulativo più recente per SQL Server 2008 R2 SP3 - KB4057113.
SQL Server 2008 R2 SP2 GDR (solo IA-64) 10.50.4047.0

Aggiornamento di SP2 TLS 1.2
SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 Aggiornamenti
SQL Server 2008 R2 SP2 CU (solo IA-64) 10.50.4344.0

Aggiornamento di SP2 TLS 1.2
SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 Aggiornamenti
SQL Server 2008 SP4 (solo x86/x64) 10.0.6547.0

Aggiornamento di SP4 TLS 1.2
Il supporto di TLS 1.2 è disponibile nell'aggiornamento cumulativo più recente per SQL Server 2008 SP4 - KB4057114(solo x86/x64).
SQL Server 2008 SP3 GDR (solo IA-64) 10.0.5545.0

Aggiornamento di SP3 TLS 1.2
SQL Server 2008 SP3 GDR (IA-64) TLS 1.2 Aggiornamenti
SQL Server 2008 SP3 CU (solo IA-64) 10.0.5896.0

Aggiornamento di SP3 TLS 1.2
SQL Server 2008 SP3 CU (IA-64) TLS 1.2 Aggiornamenti

Download dei componenti client

Usare la tabella seguente per scaricare i componenti client e gli aggiornamenti del driver applicabili all'ambiente.

Componente client/driver Aggiornamenti con supporto per TLS 1.2
SQL Server Native Client 10.0 per SQL Server 2008/2008 R2 (x86/x64/IA64) Microsoft SQL Server 2008 e SQL Server 2008 R2 Native Client
SQL Server Native Client 11.0 per SQL Server 2012/2014 (x86/x64) Microsoft SQL Server 2012 Native Client - QFE
Componenti client MDAC (Sqlsrv32.dll e Sqloledb.dll) Aggiornamento dello stack di manutenzione per Windows 10, versione 1809: 10 novembre 2020

Correzioni aggiuntive necessarie per SQL Server per l'uso di TLS 1.2

È necessario installare gli aggiornamenti rapidi .NET seguenti per abilitare SQL Server funzionalità come Posta elettronica database e alcuni componenti SSIS che usano endpoint .NET che richiedono il supporto di TLS 1.2, ad esempio l'attività Servizio Web per l'uso di TLS 1.2.

Sistema operativo Versione di .NET Framework Aggiornamenti con supporto per TLS 1.2
Windows 7 Service Pack 1, Windows 2008 R2 Service Pack 1 3.5.1 Supporto per TLS v1.2 incluso in .NET Framework versione 3.5.1
Windows 8 RTM, Windows 2012 RTM 3.5 Supporto per TLS v1.2 incluso in .NET Framework versione 3.5
Windows 8.1, Windows 2012 R2 SP1 3.5 SP1 Supporto per TLS v1.2 incluso in .NET Framework versione 3.5 SP1 in Windows 8.1 e Windows Server 2012 R2

Domande frequenti

  • TLS 1.1 è supportato in SQL Server 2016 e versioni successive?

    Sì. SQL Server 2016, SQL Server 2017 in Windows e SQL Server 2019 nelle versioni di Windows sono disponibili con il supporto da TLS 1.0 a TLS 1.2. È necessario disabilitare TLS 1.0 e 1.1 se si vuole usare solo TLS 1.2 per la comunicazione client-server.

  • SQL Server 2019 consente connessioni tramite TLS 1.0 o 1.1 o solo 1.2?

    SQL Server 2019 ha lo stesso livello di supporto di SQL Server 2016 e SQL Server 2017 e SQL Server 2019 supporta versioni precedenti di TLS. SQL Server 2019 RTM viene fornito con il supporto di TLS 1.2 e non sono necessari altri aggiornamenti o correzioni per abilitare il supporto di TLS 1.2.

  • TDS è interessato da vulnerabilità note?

    Non sono state segnalate vulnerabilità note per l'implementazione di Microsoft TDS. Poiché diverse organizzazioni di imposizione degli standard impongono l'uso di TLS 1.2 per i canali di comunicazione crittografati, Microsoft sta rilasciando il supporto per TLS 1.2 per la diffusa base di installazione SQL Server.

  • In che modo gli aggiornamenti di TLS 1.2 verranno distribuiti ai clienti?

    Questo articolo fornisce collegamenti di download per gli aggiornamenti client e server appropriati che supportano TLS 1.2.

  • TLS 1.2 supporta SQL Server 2005?

    Il supporto di TLS 1.2 è disponibile solo per SQL Server 2008 e versioni successive.

  • I clienti che non usano SSL/TLS sono interessati se SSL 3.0 e TLS 1.0 sono disabilitati nel server?

    Sì. SQL Server crittografa il nome utente e la password durante l'accesso anche se non viene usato un canale di comunicazione sicuro. Questo aggiornamento è necessario per tutte le istanze di SQL Server che non usano comunicazioni sicure e che hanno tutti gli altri protocolli tranne TLS 1.2 disabilitato nel server.

  • Quali versioni di Windows Server supportano TLS 1.2?

    Windows Server 2008 R2 e versioni successive supportano TLS 1.2.

  • Qual è l'impostazione corretta del Registro di sistema per abilitare TLS 1.2 per la comunicazione SQL Server?

    Le impostazioni corrette del Registro di sistema sono le seguenti:

    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    Queste impostazioni sono necessarie sia per i computer server che per i computer client. Le DisabledByDefault impostazioni e Enabled devono essere create nei client Windows 7 e nei server Windows Server 2008 R2. In Windows 8 e versioni successive dei sistemi operativi client o Windows Server 2012 server e versioni successive dei sistemi operativi server, È consigliabile abilitare TLS 1.2. Se stai implementando un criterio di distribuzione per Registro di sistema di Windows che deve essere indipendente dalla versione del sistema operativo, ti consigliamo di aggiungere le chiavi del Registro di sistema indicate ai criteri. Inoltre, se si usa Posta elettronica database nel SQL Server, è anche necessario impostare le chiavi del Registro di sistema .NET seguenti:

    • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

Problemi noti

  • Problema 1

    SQL Server Management Studio (SSMS), Server di report e Gestione report non si connettono al motore di database dopo aver applicato la correzione per SQL Server 2008, 2008 R2, 2012 o 2014. Il server di report e Gestione report hanno esito negativo e restituiscono il messaggio di errore seguente:

    Il server di report non può aprire una connessione al database del server di report. È necessaria una connessione al database per tutte le richieste e l'elaborazione. (rsReportServerDatabaseUnavailable)

    Questo problema si verifica perché SSMS, Gestione report e Reporting Services Configuration Manager usano ADO.NET e ADO.NET supporto per TLS 1.2 è disponibile solo in .NET Framework 4.6. Per le versioni precedenti di .NET Framework, è necessario applicare un aggiornamento di Windows in modo che ADO.NET possa supportare le comunicazioni TLS 1.2 per il client. Gli aggiornamenti di Windows che abilitano il supporto di TLS 1.2 nelle versioni precedenti di .NET Framework sono elencati nella tabella Come sapere se è necessario questo aggiornamento .

  • Problema 2

    Reporting Services Configuration Manager segnala il messaggio di errore seguente anche dopo che i provider client sono stati aggiornati a una versione che supporta TLS 1.2:

    Impossibile connettersi al server: è stata stabilita una connessione al server, ma si è verificato un errore durante l'handshake di pre-accesso.

    Screenshot di un errore di connessione di test dopo che i provider client sono stati aggiornati a una versione che supporta TLS 1.2.

    Per risolvere questo problema, creare manualmente la chiave del Registro di sistema seguente nel sistema che ospita il Reporting Services Configuration Manager:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client: "Enabled"=dword:00000001

  • Problema 3

    La comunicazione dell'endpoint crittografato che usa TLS 1.2 ha esito negativo quando si usano comunicazioni crittografate per gruppi di disponibilità, mirroring del database o Service Broker in SQL Server. Nel log degli errori SQL viene registrato un messaggio di errore simile al seguente:

    Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 56.
    

    Per altre informazioni su questo problema, vedere FIX: La comunicazione dell'endpoint crittografato con TLS 1.2 non riesce quando si usa SQL Server.

  • Problema 4

    Quando si tenta di installare SQL Server 2012 o SQL Server 2014 in un server in cui È abilitato TLS 1.2, si verificano diversi errori.

    Per altre informazioni, vedere FIX: Error when you install SQL Server 2012 or SQL Server 2014 on a server con TLS 1.2 abilitato.

  • Problema 5

    Una connessione crittografata con il mirroring del database o i gruppi di disponibilità non funziona quando si usa un certificato dopo aver disabilitato tutti gli altri protocolli diversi da TLS 1.2. Nel log degli errori di SQL Server viene registrato un messaggio di errore simile al seguente:

    Una connessione crittografata con il mirroring del database o i gruppi di disponibilità non funziona quando si usa un certificato dopo aver disabilitato tutti gli altri protocolli diversi da TLS 1.2. Si potrebbe notare uno dei sintomi seguenti:

    • Sintomo 1:

      Nel log degli errori di SQL Server viene registrato un messaggio di errore simile al seguente:

      Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 58.'
      
    • Sintomo 2:

      Nel registro eventi di Windows viene registrato un messaggio di errore simile al seguente:

      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36888
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      ------------
      Description:
      A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection. The TLS protocol defined fatal error code is 40. The Windows SChannel error state is 1205.
      
      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36874
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      -----------
      Description:
      An TLS 1.2 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.
      

      Questo problema si verifica perché i gruppi di disponibilità e il mirroring del database richiedono un certificato che non usa algoritmi hash a lunghezza fissa, ad esempio MD5. Gli algoritmi di hash a lunghezza fissa non sono supportati in TLS 1.2.

    Per altre informazioni, vedere FIX: La comunicazione con l'algoritmo hash MD5 ha esito negativo se SQL Server usa TLS 1.2.

  • Problema 6

    Le versioni seguenti SQL Server motore di database sono interessate dal problema di terminazione intermittente del servizio segnalato nell'articolo della Knowledge Base 3146034. Per consentire ai clienti di proteggersi dal problema di terminazione del servizio, è consigliabile installare gli aggiornamenti di TLS 1.2 per SQL Server indicati in questo articolo se la versione SQL Server è elencata nella tabella seguente:

    versione SQL Server Versione interessata
    SQL Server 2008 R2 SP3 (x86 e x64) 10.50.6537.0
    SQL Server 2008 R2 SP2 GDR (solo IA-64) 10.50.4046.0
    SQL Server 2008 R2 SP2 (solo IA-64) 10.50.4343.0
    SQL Server 2008 SP4 (x86 e x64) 10.0.6543.0
    SQL Server 2008 SP3 GDR (solo IA-64) 10.0.5544.0
    SQL Server 2008 SP3 (solo IA-64) 10.0.5894.0
  • Problema 7

    Posta elettronica database non funziona con TLS 1.2. Posta elettronica database ha esito negativo con l'errore seguente:

    Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: impossibile leggere le informazioni di configurazione della posta elettronica dal database. Impossibile avviare la sessione di posta elettronica.

    Per altre informazioni, vedere Correzioni aggiuntive necessarie per SQL Server per l'uso di TLS 1.

Errori comuni che potrebbero verificarsi quando gli aggiornamenti di TLS 1.2 sono mancanti nel client o nel server

Problema 1

System Center Configuration Manager (SCCM) non può connettersi a SQL Server dopo l'abilitazione del protocollo TLS 1.2 in SQL Server. In questo caso, viene visualizzato il seguente messaggio di errore:

Provider TCP: una connessione esistente è stata chiusa forzatamente dall'host remoto

Questo problema può verificarsi quando SCCM usa un driver SQL Server Native Client che non ha una correzione. Per risolvere questo problema, scaricare e installare la correzione client elencata nella sezione Download dei componenti client . Ad esempio, Microsoft® SQL Server ® 2012 Native Client - QFE.

È possibile scoprire quale SCCM del driver sta usando per connettersi a SQL Server visualizzando il log SCCM, come illustrato nell'esempio seguente:

[SQL Server Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>