Sintomi
Supponiamo che tu usi il protocollo Transport Layer Security (TLS) versione 1,2 in Microsoft SQL Server. Quando il certificato usato per crittografare la comunicazione dell'endpoint per il mirroring del database, i gruppi di disponibilità e Service Broker usa un algoritmo di hash MD5, la comunicazione non riesce. Inoltre, viene visualizzato il messaggio di errore seguente nel log degli errori di SQL Server:
L'handshake di connessione non è riuscito. Una chiamata al sistema operativo non è riuscita: (80090331) 0x80090331 (il client e il server non possono comunicare, perché non posseggono un algoritmo comune). Stato 58 .'.
Inoltre, il log di Windows riporta l'errore Schannel seguente:
È stato generato un avviso fatale e inviato all'endpoint remoto. Ciò potrebbe causare la terminazione della connessione. Il codice di errore irreversibile definito dal protocollo TLS è 40. Lo stato di errore di Windows SChannel è 1205.
Causa
Questo problema si verifica perché TLS 1,2 non supporta MD5 come algoritmo hash della firma.
Risoluzione
In base alle procedure consigliate e agli standard di sicurezza correnti, ti consigliamo di passare a un hash della firma non MD5 per i certificati usati per la crittografia degli endpoint di SQL Server. L'elenco delle versioni fisse che supportano TLS 1,2 è disponibile nell'articolo della Microsoft Knowledge Base seguente:
3135244 Supporto di TLS 1,2 per Microsoft SQL Server
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.