Prise en charge de TLS 1.2 pour Microsoft SQL Server

S’applique à : SQL Server
Numéro de la base de connaissances d’origine : 3135244

Introduction

Cet article fournit des informations sur les mises à jour que Microsoft publie pour activer la prise en charge de TLS 1.2 pour SQL Server 2017 sur Windows, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 et SQL Server 2008 R2. Cet article répertorie également les fournisseurs clients pris en charge. SQL Server 2016, SQL Server 2017 et SQL Server 2019 prennent en charge TLS 1.2 sans avoir besoin d’une mise à jour.

Plusieurs vulnérabilités connues ont été signalées contre SSL (Secure Sockets Layer) et les versions antérieures de TLS (Transport Layer Security). Nous vous recommandons d’effectuer une mise à niveau vers TLS 1.2 pour une communication sécurisée.

Importante

Aucune vulnérabilité connue n’a été signalée pour l’implémentation de Microsoft TDS. Il s’agit du protocole de communication utilisé entre SQL Server clients et le moteur de base de données SQL Server. L’implémentation microsoft Schannel de TLS 1.0 (en ce qui concerne les vulnérabilités connues qui ont été signalées à Microsoft à la date de publication de cet article) est résumée dans l’implémentation Schannel de TLS 1.0 dans la mise à jour de sécurité status Windows : 24 novembre 2015.

Comment savoir si vous avez besoin de cette mise à jour

Utilisez le tableau suivant pour déterminer si votre version actuelle de SQL Server prend déjà en charge TLS 1.2 ou si vous devez télécharger une mise à jour pour activer la prise en charge de TLS 1.2. Utilisez les liens de téléchargement dans la table pour obtenir les mises à jour de serveur applicables à votre environnement.

Remarque

Les builds qui sont ultérieures à celles répertoriées dans ce tableau prennent également en charge TLS 1.2.

version SQL Server Build/mise en production initiale qui a pris en charge TLS 1.2 Mises à jour actuelles avec prise en charge de TLS 1.2 Informations supplémentaires
SQL Server 2014 SP1 CU 12.0.4439.1

SP1 CU5
KB3130926 - Mise à jour cumulative 5 pour SQL Server 2014 SP1

Remarque : KB3130926 installera maintenant la dernière mise à jour cumulative produite pour 2014 SP1 (CU13 - KB4019099), qui inclut la prise en charge de TLS 1.2 et tous les correctifs logiciels publiés à ce jour. Si nécessaire, CU5 est disponible dans le catalogue Windows Update.

Remarque : la prise en charge de TLS 1.2 est également disponible dans 2014 SP2 et 2014 SP3.
KB3052404 - CORRECTIF : vous ne pouvez pas utiliser le protocole Transport Layer Security version 1.2 pour vous connecter à un serveur qui exécute SQL Server 2014 ou SQL Server 2012
SQL Server 2014 SP1 GDR 12.0.4219.0

Mise à jour SP1 GDR TLS 1.2
La prise en charge de TLS 1.2 pour 2014 SP1 GDR est disponible dans la dernière mise à jour cumulative GDR - KB4019091.

Remarque : la prise en charge de TLS 1.2 est également disponible dans 2014 SP2 et 2014 SP3.
SQL Server 2014 RTM CU 12.0.2564.0

RTM CU12
KB3130923 - Mise à jour cumulative 12 pour SQL Server 2014

Remarque : KB3130923 installerez maintenant la dernière mise à jour de mise à jour cumulative pour 2014 RTM (CU14 - KB3158271 ), qui inclut la prise en charge de TLS 1.2 et tous les correctifs logiciels publiés à ce jour. Si nécessaire, CU12 est disponible dans Windows Update Catalog.

Remarque : la prise en charge de TLS 1.2 est également disponible dans 2014 SP2 et 2014 SP3.
KB3052404 - CORRECTIF : vous ne pouvez pas utiliser le protocole Transport Layer Security version 1.2 pour vous connecter à un serveur qui exécute SQL Server 2014 ou SQL Server 2012
SQL Server 2014 RTM GDR 12.0.2271.0

Mise à jour RTM GDR TLS 1.2
La prise en charge de TLS pour SQL 2014 RTM est actuellement disponible uniquement en installant 2014 SP2 et 2014 SP3.
SQL Server 2012 SP3 GDR 11.0.6216.27

Mise à jour SP3 GDR TLS 1.2
Description de la mise à jour de sécurité pour SQL Server 2012 SP3 GDR : 16 janvier 2018

Remarque : la prise en charge de TLS 1.2 est également disponible dans 2012 SP4.
SQL Server 2012 SP3 CU 11.0.6518.0

SP1 CU3
KB3123299 - Mise à jour cumulative 1 pour SQL Server 2012 SP3

Remarque : KB3123299 installera maintenant la dernière mise à jour cumulative publiée pour 2012 SP3 (CU10 - KB4025925, qui inclut la prise en charge de TLS 1.2 et tous les correctifs logiciels publiés à ce jour). Si nécessaire, CU1 est disponible dans Windows Update Catalog.

Remarque : la prise en charge de TLS 1.2 est également disponible dans 2012 SP4.
KB3052404 - CORRECTIF : vous ne pouvez pas utiliser le protocole Transport Layer Security version 1.2 pour vous connecter à un serveur qui exécute SQL Server 2014 ou SQL Server 2012
SQL Server 2012 SP2 GDR 11.0.5352.0

Mise à jour SP2 GDR TLS 1.2
La prise en charge de TLS 1.2 pour 2012 SP2 GDR est disponible dans la dernière mise à jour cumulative GDR - KB3194719.

La prise en charge de TLS 1.2 est également disponible dans 2012 SP3 et 2012 SP4.
SQL Server 2012 SP2 CU 11.0.5644.2

SP2 CU10
KB3120313 - Mise à jour cumulative 10 pour SQL Server 2012 SP2.

Remarque : KB3120313 installera maintenant la dernière mise à jour cumulative publiée pour 2012 SP2 (CU16 - KB3205054, qui inclut la prise en charge de TLS 1.2 et tous les correctifs logiciels publiés à ce jour). Si nécessaire, CU1 est disponible dans Windows Update Catalog. Remarque : la prise en charge de TLS 1.2 est également disponible dans 2012 SP3 et 2012 SP4.
KB3052404 - CORRECTIF : vous ne pouvez pas utiliser le protocole Transport Layer Security version 1.2 pour vous connecter à un serveur qui exécute SQL Server 2014 ou SQL Server 2012
SQL Server 2008 R2 SP3 (x86/x64 uniquement) 10.50.6542.0

Mise à jour SP2 TLS 1.2
La prise en charge de TLS 1.2 est disponible dans la dernière mise à jour cumulative pour SQL Server 2008 R2 SP3 - KB4057113.
SQL Server 2008 R2 SP2 GDR (IA-64 uniquement) 10.50.4047.0

Mise à jour SP2 TLS 1.2
SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 Mises à jour
SQL Server 2008 R2 SP2 CU (IA-64 uniquement) 10.50.4344.0

Mise à jour SP2 TLS 1.2
SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 Mises à jour
SQL Server 2008 SP4 (x86/x64 uniquement) 10.0.6547.0

Mise à jour SP4 TLS 1.2
La prise en charge de TLS 1.2 est disponible dans la dernière mise à jour cumulative pour SQL Server 2008 SP4 - KB4057114(x86/x64 uniquement).
SQL Server 2008 SP3 GDR (IA-64 uniquement) 10.0.5545.0

Mise à jour SP3 TLS 1.2
SQL Server 2008 SP3 GDR (IA-64) TLS 1.2 Mises à jour
SQL Server 2008 SP3 CU (IA-64 uniquement) 10.0.5896.0

Mise à jour SP3 TLS 1.2
SQL Server 2008 SP3 CU (IA-64) TLS 1.2 Mises à jour

Téléchargements de composants clients

Utilisez le tableau suivant pour télécharger les composants clients et les mises à jour de pilotes applicables à votre environnement.

Composant/pilote client Mises à jour avec prise en charge de TLS 1.2
SQL Server Native Client 10.0 pour SQL Server 2008/2008 R2 (x86/x64/IA64) Microsoft SQL Server 2008 et SQL Server 2008 R2 Native Client
SQL Server Native Client 11.0 pour SQL Server 2012/2014 (x86/x64) Microsoft SQL Server 2012 Native Client - QFE
Composants du client MDAC (Sqlsrv32.dll et Sqloledb.dll) Mise à jour de la pile de maintenance pour Windows 10, version 1809 : 10 novembre 2020

Correctifs supplémentaires nécessaires pour SQL Server utiliser TLS 1.2

Vous devez installer les correctifs cumulatifs .NET suivants pour activer SQL Server fonctionnalités telles que Database Mail et certains composants SSIS qui utilisent des points de terminaison .NET qui nécessitent la prise en charge de TLS 1.2, comme la tâche de service web pour utiliser TLS 1.2.

Système d’exploitation Version NET Framework Mises à jour avec prise en charge de TLS 1.2
Windows 7 Service Pack 1, Windows 2008 R2 Service Pack 1 3.5.1 Prise en charge de TLS v1.2 inclus dans .NET Framework version 3.5.1
Windows 8 RTM, Windows 2012 RTM 3.5 Prise en charge de TLS v1.2 inclus dans .NET Framework version 3.5
Windows 8.1, Windows 2012 R2 SP1 3.5 SP1 Prise en charge de TLS v1.2 inclus dans .NET Framework version 3.5 SP1 sur Windows 8.1 et Windows Server 2012 R2

Forum aux questions

  • TLS 1.1 est-il pris en charge sur SQL Server 2016 et versions ultérieures ?

    Oui. SQL Server 2016, SQL Server 2017 sur Windows et SQL Server 2019 sur Windows sont fournis avec la prise en charge de TLS 1.0 à TLS 1.2. Vous devez désactiver TLS 1.0 et 1.1 si vous souhaitez utiliser uniquement TLS 1.2 pour la communication client-serveur.

  • SQL Server 2019 autorise-t-il les connexions utilisant TLS 1.0 ou 1.1, ou uniquement 1.2 ?

    SQL Server 2019 a le même niveau de prise en charge que SQL Server 2016 et SQL Server 2017, et SQL Server 2019 prend en charge les versions antérieures de TLS. SQL Server RTM 2019 est fourni avec la prise en charge de TLS 1.2, et aucune autre mise à jour ou correctif n’est nécessaire pour activer la prise en charge de TLS 1.2.

  • TdS est-il affecté par des vulnérabilités connues ?

    Aucune vulnérabilité connue n’a été signalée pour l’implémentation de Microsoft TDS. Étant donné que plusieurs organisations d’application des normes obligent l’utilisation de TLS 1.2 pour les canaux de communication chiffrés, Microsoft publie la prise en charge de TLS 1.2 pour la base d’installation SQL Server étendue.

  • Comment les mises à jour TLS 1.2 seront-elles distribuées aux clients ?

    Cet article fournit des liens de téléchargement pour les mises à jour appropriées du serveur et du client qui prennent en charge TLS 1.2.

  • TLS 1.2 prend-il en charge SQL Server 2005 ?

    La prise en charge de TLS 1.2 est proposée uniquement pour SQL Server 2008 et versions ultérieures.

  • Les clients qui n’utilisent pas SSL/TLS sont-ils affectés si SSL 3.0 et TLS 1.0 sont désactivés sur le serveur ?

    Oui. SQL Server chiffre le nom d’utilisateur et le mot de passe lors de la connexion, même si aucun canal de communication sécurisé n’est utilisé. Cette mise à jour est requise pour toutes les instances SQL Server qui n’utilisent pas de communications sécurisées et qui ont tous les autres protocoles, à l’exception de TLS 1.2 désactivés sur le serveur.

  • Quelles versions de Windows Server prennent en charge TLS 1.2 ?

    Windows Server 2008 R2 et versions ultérieures prennent en charge TLS 1.2.

  • Quel est le paramètre de Registre approprié pour activer TLS 1.2 pour SQL Server communication ?

    Les paramètres de Registre corrects sont les suivants :

    • [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

    Ces paramètres sont requis pour les ordinateurs serveur et client. Les DisabledByDefault paramètres et Enabled doivent être créés sur les clients Windows 7 et les serveurs Windows Server 2008 R2. Sur Windows 8 et versions ultérieures des systèmes d’exploitation clients ou Windows Server 2012 serveur et les versions ultérieures des systèmes d’exploitation serveur, TLS 1.2 doit déjà être activé. Si vous implémentez une stratégie de déploiement pour le Registre Windows qui doit être indépendante de la version du système d’exploitation, nous vous recommandons d’ajouter les clés de Registre mentionnées à la stratégie. En outre, si vous utilisez Database Mail sur votre SQL Server, vous devez également définir les clés de Registre .NET suivantes :

    • [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

Problèmes connus

  • Problème 1

    SQL Server Management Studio (SSMS), le serveur de rapports et le Gestionnaire de rapports ne se connectent pas au moteur de base de données après avoir appliqué le correctif pour SQL Server 2008, 2008 R2, 2012 ou 2014. Le serveur de rapports et le Gestionnaire de rapports échouent et retournent le message d’erreur suivant :

    Le serveur de rapports ne peut pas ouvrir une connexion à la base de données du serveur de rapports. Une connexion à la base de données est requise pour toutes les demandes et le traitement. (rsReportServerDatabaseUnavailable)

    Ce problème se produit parce que SSMS, le Gestionnaire de rapports et Reporting Services Configuration Manager utilisent ADO.NET, et ADO.NET prise en charge de TLS 1.2 est disponible uniquement dans .NET Framework 4.6. Pour les versions antérieures du .NET Framework, vous devez appliquer une mise à jour Windows afin que ADO.NET puisse prendre en charge les communications TLS 1.2 pour le client. Les mises à jour Windows qui activent la prise en charge de TLS 1.2 dans les versions antérieures du .NET Framework sont répertoriées dans le tableau de la section Comment savoir si vous avez besoin de cette mise à jour .

  • Problème 2

    Reporting Services Configuration Manager signale le message d’erreur suivant, même après la mise à jour des fournisseurs clients vers une version prenant en charge TLS 1.2 :

    Impossible de se connecter au serveur : une connexion a été établie avec succès sur le serveur, mais une erreur s’est produite lors de l’établissement d’une liaison préalable à la connexion.

    Capture d’écran d’une erreur de test de connexion après la mise à jour des fournisseurs clients vers une version prenant en charge TLS 1.2.

    Pour résoudre ce problème, créez manuellement la clé de Registre suivante sur le système qui héberge le Reporting Services Configuration Manager :

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

  • Problème 3

    La communication de point de terminaison chiffrée qui utilise TLS 1.2 échoue lorsque vous utilisez des communications chiffrées pour les groupes de disponibilité, la mise en miroir de bases de données ou Service Broker dans SQL Server. Un message d’erreur semblable à ce qui suit est enregistré dans le journal des erreurs SQL :

    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.
    

    Pour plus d’informations sur ce problème, consultez CORRECTIF : Échec de la communication du point de terminaison chiffré avec TLS 1.2 lorsque vous utilisez SQL Server.

  • Problème 4

    Diverses erreurs se produisent lorsque vous essayez d’installer SQL Server 2012 ou SQL Server 2014 sur un serveur sur lequel TLS 1.2 est activé.

    Pour plus d’informations, consultez CORRECTIF : Erreur lorsque vous installez SQL Server 2012 ou SQL Server 2014 sur un serveur sur lequel TLS 1.2 est activé.

  • Problème 5

    Une connexion chiffrée avec la mise en miroir de bases de données ou les groupes de disponibilité ne fonctionne pas lorsque vous utilisez un certificat après avoir désactivé tous les autres protocoles autres que TLS 1.2. Un message d’erreur semblable à ce qui suit est enregistré dans le journal des erreurs SQL Server :

    Une connexion chiffrée avec la mise en miroir de bases de données ou les groupes de disponibilité ne fonctionne pas lorsque vous utilisez un certificat après avoir désactivé tous les autres protocoles autres que TLS 1.2. Vous remarquerez peut-être l’un des symptômes suivants :

    • Symptôme 1 :

      Un message d’erreur semblable à ce qui suit est enregistré dans le journal des erreurs SQL Server :

      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.'
      
    • Symptôme 2 :

      Un message d’erreur semblable à ce qui suit est enregistré dans le journal des événements Windows :

      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.
      

      Ce problème se produit car les groupes de disponibilité et la mise en miroir de bases de données nécessitent un certificat qui n’utilise pas d’algorithmes de hachage de longueur fixe, tels que MD5. Les algorithmes de hachage de longueur fixe ne sont pas pris en charge dans TLS 1.2.

    Pour plus d’informations, consultez CORRECTIF : La communication à l’aide de l’algorithme de hachage MD5 échoue si SQL Server utilise TLS 1.2.

  • Problème 6

    Les versions de moteur de base de données SQL Server suivantes sont affectées par le problème d’arrêt intermittent du service signalé dans l’article 3146034 de la Base de connaissances. Pour que les clients puissent se protéger contre le problème d’arrêt de service, nous leur recommandons d’installer les mises à jour TLS 1.2 pour les SQL Server mentionnées dans cet article si leur version SQL Server est répertoriée dans le tableau suivant :

    version SQL Server Version affectée
    SQL Server 2008 R2 SP3 (x86 et x64) 10.50.6537.0
    SQL Server 2008 R2 SP2 GDR (IA-64 uniquement) 10.50.4046.0
    SQL Server 2008 R2 SP2 (IA-64 uniquement) 10.50.4343.0
    SQL Server 2008 SP4 (x86 et x64) 10.0.6543.0
    SQL Server 2008 SP3 GDR (IA-64 uniquement) 10.0.5544.0
    SQL Server 2008 SP3 (IA-64 uniquement) 10.0.5894.0
  • Problème 7

    Database Mail ne fonctionne pas avec TLS 1.2. Database Mail échoue avec l’erreur suivante :

    Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException : les informations de configuration de messagerie n’ont pas pu être lues à partir de la base de données. Impossible de démarrer la session de messagerie.

    Pour plus d’informations, consultez Correctifs supplémentaires nécessaires pour SQL Server utiliser TLS 1.

Erreurs courantes que vous pouvez rencontrer lorsque des mises à jour TLS 1.2 sont manquantes sur le client ou le serveur

Problème 1

System Center Configuration Manager (SCCM) ne peut pas se connecter à SQL Server une fois le protocole TLS 1.2 activé sur SQL Server. Dans ce cas, le message d’erreur ci-dessous s’affiche :

Fournisseur TCP : une connexion existante a été fermée de force par l’hôte distant

Ce problème peut se produire lorsque SCCM utilise un pilote SQL Server Native Client qui n’a pas de correctif. Pour résoudre ce problème, téléchargez et installez le correctif client répertorié dans la section Téléchargements du composant client . Par exemple, Microsoft® SQL Server ® 2012 Native Client - QFE.

Vous pouvez déterminer quel pilote SCCM utilise pour se connecter à SQL Server en consultant le journal SCCM, comme illustré dans l’exemple suivant :

[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)>