Connessione a SQL Server con crittografia rigorosa

Si applica a: SQL Server 2022 (16.x) e versioni successive

La crittografia stretta della connessione applica buone pratiche di sicurezza e rende il traffico di SQL Server gestibile dagli appliance standard di rete. La crittografia strict usa TDS (Tabular Data Stream) 8.0, che esegue il wrapping della sessione TDS in Transport Layer Security (TLS) per la crittografia end-to-end.

Questo articolo illustra come connettersi a SQL Server 2022 (16.x) e versioni successive usando il tipo di connessione strict.

Prerequisito

Connessione a SQL Server tramite un'applicazione .NET

Per informazioni sulla generazione e la connessione a SQL Server tramite il tipo di crittografia strict, vedere Sintassi della stringa di connessione per la generazione corretta della stringa di connessione. Per altre informazioni sulle nuove proprietà della stringa di connessione, vedere Modifiche aggiuntive alle proprietà della crittografia della stringa di connessione.

Connessione tramite un DSN ODBC

È possibile testare una connessione con il tipo di crittografia della connessione Strict usando un DSN ODBC per SQL Server.

  1. Cerca l'app Origini dati ODBC in Windows.

    Schermata dell'app origini dati O D B C.

  2. Assicurati di avere il driver ODBC più recente controllando nella scheda Driver dell'Amministratore dati ODBC.

    Screenshot dei driver disponibili.

  3. Nella scheda DSN di sistema, selezionare Aggiungi per creare un DSN. Selezionare, quindi, il Driver ODBC 18 per SQL Server. Selezionare Fine. Verrà usato per testare la connessione.

  4. Nella finestra Crea una nuova origine dati per SQL Server, specificare un nome per questa origine dati e aggiungere il nome del server di SQL Server 2022 (16.x) a Server. Selezionare Avanti.

    Screenshot della creazione di un'origine dati con il driver O D B C.

  5. Usare tutti i valori predefiniti per tutte le impostazioni fino alla schermata Crittografia connessione. Selezionare Strict. Se il nome del server inserito è diverso da quello nel certificato o se viene usato l'indirizzo IP, devi impostare Nome host nel certificato al nome utilizzato nel tuo certificato. Selezionare Fine.

    Screenshot che mostra il tipo di crittografia rigorosa.

  6. Quando viene visualizzata la finestra di dialogo Installazione di Microsoft SQL Server ODBC, selezionare il pulsante Origine dati di test… per testare la connessione. Questa operazione dovrebbe imporre la connessione strict a SQL Server per questo test.

È possibile testare la connessione a SQL Server anche con la crittografia strict usando il driver OLE DB con Universal Data Link (UDL).

  1. Per creare un file UDL per testare la connessione, fare clic con il pulsante destro del mouse sul desktop e selezionare Nuovo>Documento di testo. È necessario modificare l'estensione da txt a udl. Al file è possibile assegnare un nome qualunque.

    Nota

    È necessario essere in grado di visualizzare il nome dell'estensione per modificare l'estensione da txt a udl. Se non è possibile visualizzare l'estensione, è possibile abilitare la visualizzazione dell'estensione aprendo Visualizzazione File Explorer Show File name extensions .If you't see the extension, you can enable view the extension by opening File Explorer>View>Show>File name extensions.

  2. Aprire il file UDL creato e accedere alla scheda Provider per selezionare il Driver OLE DB di Microsoft 19 per SQL Server. Selezionare Avanti>>.

    Screenshot della schermata del fornitore U D L.

  3. Nella scheda Connessione, inserire il nome del server di SQL Server e selezionare il metodo di autenticazione usato per accedere a SQL Server.

    Screenshot della schermata di connessione U D L.

  4. Nella scheda Avanzate, selezionare Strict per la Crittografia di connessione. Se il nome del server inserito è diverso da quello nel certificato o se viene usato l'indirizzo IP, impostare il Nome host nel certificato su quello usato nel certificato. Al termine, tornare alla scheda Connessione.

    Screenshot della schermata avanzata di UDL.

  5. Selezionare Connessione di test per testare la connessione con la crittografia di connessione strict.

    Screenshot della schermata di connessione U D L e test della connessione.

Connettersi con SSMS

A partire dalla versione 20, è possibile applicare la crittografia rigorosa in SQL Server Management Studio (SSMS) nella scheda Account di accesso della finestra di dialogo Connetti al server :

Screenshot della finestra di dialogo Connetti al server in SQL Server Management Studio.

Connettersi a un gruppo di disponibilità AlwaysOn

A partire da SQL Server 2025 (17.x), è possibile crittografare la comunicazione tra il cluster di failover di Windows Server e una replica del gruppo di disponibilità Always On usando il tipo di crittografia della connessione Strict o Mandatory. Il tuo gruppo di disponibilità può applicare la crittografia solo se si basa su un cluster di failover di Windows Server. Altri tipi di gruppi di disponibilità non supportano la crittografia rigorosa.

Nota

La crittografia per gli endpoint del mirroring del database è configurata separatamente e TLS non è supportata. Per altre informazioni, vedere Sicurezza del trasporto nei gruppi di disponibilità e mirroring del database.

I passaggi variano a seconda che la disponibilità esista o meno.

Per forzare la crittografia rigorosa in un nuovo gruppo di disponibilità, seguire questa procedura:

  1. Se non è già stato fatto, importare il certificato TLS in ogni replica del gruppo di disponibilità, come definito dai requisiti del certificato. Riavviare ogni istanza di SQL Server dopo l'importazione del certificato.
  2. Testare le connessioni a ogni replica di SQL Server usando uno dei metodi indicati in questo articolo che applica la crittografia.
  3. CREATE AVAILABILITY GROUP con la Encrypt proprietà impostata su Strict nella CLUSTER_CONNECTION_OPTIONS clausola per il gruppo di disponibilità. In questo modo tutte le connessioni al gruppo di disponibilità usano il tipo di crittografia specificato.
  4. Se il gruppo di disponibilità è attualmente online, eseguire il failover del gruppo di disponibilità in una replica secondaria per applicare le nuove impostazioni di crittografia al gruppo di disponibilità. Se il gruppo di disponibilità non riesce a essere online, potrebbe non essere ClusterConnectionOptions impostato correttamente. Controllare il cluster.log per errori ODBC relativi al fatto che il cluster non riesce a connettersi alla replica di SQL Server. Facoltativamente, è possibile riportare il gruppo di disponibilità alla replica primaria originale dopo che la nuova replica secondaria è online e connessa al gruppo di disponibilità.
  5. (Facoltativo) È possibile applicare ulteriormente la crittografia impostando l'opzione Force Strict Encryption su Yes nelle proprietà di Gestione configurazione SQL Server per il protocollo di connessione per ogni replica. Questa impostazione garantisce che tutte le connessioni alle repliche del gruppo di disponibilità usino una crittografia rigorosa. Riavviare ogni replica di SQL Server dopo aver modificato questa impostazione.

Connettersi a un'istanza del cluster di failover

A partire da SQL Server 2025 (17.x), è possibile crittografare la comunicazione tra il cluster di failover di Windows Server e un'istanza del cluster di failover Always On utilizzando il tipo di crittografia della connessione Strict oppure Mandatory. Per fare questo, segui questi passaggi:

  1. Se non è già stato fatto, importare il certificato TLS in ogni nodo del cluster di failover, come definito dai requisiti del certificato. Riavviare l'istanza di SQL Server dopo l'importazione del certificato.
  2. Verificare le connessioni all'istanza del cluster di failover utilizzando uno dei metodi menzionati in questo articolo che applicano la crittografia.
  3. ALTER SERVER CONFIGURATION con la CLUSTER_CONNECTION_OPTIONS clausola per impostare la Encrypt proprietà su Mandatory o Strict. In questo modo tutte le connessioni all'istanza del cluster di failover usano il tipo di crittografia specificato.
  4. Eseguire il failover dell'istanza in un nodo secondario per applicare le nuove impostazioni di crittografia all'istanza del cluster di failover. Se l'istanza del cluster di failover non riesce a essere online, potrebbe non essere ClusterConnectionOptions impostata correttamente. Controllare il cluster.log per errori ODBC relativi al cluster che non riesce a connettersi all'istanza di SQL Server. Facoltativamente, è possibile eseguire il failback dell'istanza nel nodo primario originale dopo che il nuovo nodo secondario è online e connesso all'istanza del cluster di failover.
  5. (Facoltativo) È possibile applicare ulteriormente la crittografia impostando l'opzione Force Strict Encryption su Yes nelle proprietà di Gestione configurazione SQL Server per il protocollo di connessione per ogni nodo del cluster. Questa impostazione garantisce che tutte le connessioni all'istanza del cluster di failover usino una crittografia rigorosa. Apportare questa modifica al nodo secondario, eseguire il failover dell'istanza e quindi apportare la modifica nel nodo primario.

crittografia della connessione SQL Server Agent

A partire da SQL Server 2025 (17.x), SQL Server Agent usa Microsoft DRIVER ODBC 18 per SQL Server, che supporta TDS 8.0 e TLS 1.3. SQL Server Agent regola automaticamente la crittografia della connessione in modo che corrisponda alla modalità di configurazione dell'istanza di SQL Server.

Come SQL Server Agent determina la crittografia

All'avvio di SQL Server Agent, esegue una query sulle chiavi del Registro di sistema seguenti nel computer locale per determinare il livello di crittografia configurato per SQL Server:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceEncryption
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceStrict
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\SubjectAlternativeName(novità in SQL Server 2025 (17.x))

In base a questi valori, SQL Server Agent seleziona la modalità di connessione:

  • Se Force Strict Encryption è abilitato, SQL Server Agent si connette tramite strict (TDS 8.0).
  • Se la crittografia forzata è abilitata, SQL Server Agent si connette tramite mandatory (TDS 7.x).
  • Se nessuno dei due è abilitato, SQL Server Agent si connette tramite optional (TDS 7.x).

I passaggi del processo T-SQL locale ereditano la stessa configurazione di crittografia del servizio SQL Server Agent. Se SQL Server Agent si connette con strict, i processi T-SQL in esecuzione localmente nel server usano la stessa opzione.

Importante

TLS 1.3 funziona solo con la crittografia rigorosa. Se l'istanza di SQL Server ha abilitato solo TLS 1.3 a livello di sistema operativo, ma è impostata solo La crittografia forzata (non Force Strict Encryption), SQL Server Agent non può iniziare perché mandatory e optional le modalità richiedono TDS 7.x, che non è compatibile con TLS 1.3.

Matrice di configurazione TLS e crittografia

Versione TLS abilitata Impostazione di configurazione SQL Server Agent risultato Notes
Solo TLS 1.3 Impostare la Crittografia Stretta Si connette correttamente TDS 8.0 usa la crittografia rigorosa
Solo TLS 1.3 Forza l'encryption Non è possibile connettersi TLS 1.3 richiede strict
Solo TLS 1.3 None Non è possibile connettersi TLS 1.3 richiede una crittografia rigorosa
Solo TLS 1.2 Impostare la Crittografia Stretta Si connette correttamente TDS 8.0 può usare TLS 1.2
Solo TLS 1.2 Forza l'encryption Si connette correttamente TDS 7.x con obbligatorio
Solo TLS 1.2 None Si connette correttamente TDS 7.x con facoltativo
TLS 1.2 e TLS 1.3 Impostare la Crittografia Stretta Si connette correttamente TDS 8.0 usa la crittografia rigorosa
TLS 1.2 e TLS 1.3 Forza l'encryption Si connette correttamente TDS 7.x con obbligatorio
TLS 1.2 e TLS 1.3 None Si connette correttamente TDS 7.x con facoltativo

Verificare la crittografia negoziata di SQL Server Agent

Dopo la connessione SQL Server Agent, eseguire la query seguente per confermare la modalità di crittografia:

SELECT s.session_id, c.encrypt_option, s.program_name, s.client_interface_name, s.nt_user_name
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s
    ON c.session_id = s.session_id
WHERE s.program_name LIKE 'SQLAgent%';

La encrypt_option colonna restituisce TRUE quando SQL Server Agent connesso con la crittografia.

Per una panoramica di SQL Server Agent stessa, vedere SQL Server Agent.

Forzare la crittografia rigorosa con Gestione configurazione SQL Server

È possibile applicare la crittografia rigorosa usando Gestione configurazione SQL Server a partire da SQL Server 2022 (16.x). A tale scopo, seguire questa procedura:

  1. Aprire Gestore configurazione SQL Server.

  2. Nel riquadro sinistro espandere Configurazione di rete di SQL Server e selezionare Protocolli per [InstanceName].

  3. Fare clic con il pulsante destro del mouse su TCP/IP e scegliere Proprietà.

  4. Nella finestra di dialogo Proprietà TCP/IP passare alla scheda Flags e quindi selezionare per l'opzione Forza crittografia rigorosa :

    Screenshot dell'opzione Force Strict Encryption in Gestione della configurazione di SQL Server.

  5. Riavviare l'istanza di SQL Server durante una finestra di manutenzione per applicare le modifiche.

Osservazioni:

Se viene visualizzato SSL certificate validation failed, accertarsi che:

  • Il certificato del server è valido sul computer che stai utilizzando per il test.
  • Si verifichi almeno una delle situazioni seguenti:
    • Il SQL Server del provider corrisponde al nome dell’autorità di certificazione o a uno dei nomi DNS nel certificato.
    • La proprietà della stringa di connessione HostNameInCertificate corrisponde al nome dell’autorità di certificazione o a uno dei nomi DNS nel certificato.