Errore "Il certificato ricevuto dal server remoto è stato emesso da un'autorità di certificazione non attendibile" quando ci si connette a SQL Server

Questo articolo consente di risolvere il problema che si verifica quando si tenta di stabilire una connessione crittografata a SQL Server.

Versione originale del prodotto: SQL Server
Numero della Knowledge Base originale: 2007728

Sintomi

Quando ci si connette a SQL Server, è possibile che venga visualizzato il messaggio di errore seguente:

È stata stabilita una connessione con il server, ma si è verificato un errore durante il processo di accesso. (provider: Provider SSL, errore: 0 - La catena di certificati è stata emessa da un'autorità non attendibile. (Provider di dati .Net SqlClient)

Inoltre, nel registro eventi del sistema Windows viene registrato il messaggio di errore seguente.

Log Name:      System  
Source:        Schannel  
Date:          10/13/2020 3:03:31 PM  
Event ID:      36882  
Task Category: None  
Level:         Error  
Keywords:  
User:        USERNAME  
Computer:     COMPUTERNAME  
Description:  
The certificate received from the remote server was issued by an untrusted certificate authority. Because of this, none of the data contained in the certificate can be validated. The TLS connection request has failed. The attached data contains the server certificate.

Causa

Questo errore si verifica quando si tenta di stabilire una connessione crittografata a SQL Server utilizzando un certificato non verificabile. Questo può accadere negli scenari seguenti:

Scenario Crittografia lato server Crittografia lato client Tipo di certificato Autorità emittente di certificati presente nell'archivio delle Autorità di certificazione radice attendibili
1 No Si effettua il provisioning di un certificato da un'origine non attendibile (l'autorità emittente del certificato non è elencata come autorità attendibile nelle autorità di certificazione radice attendibili nel computer client) No
2 Disattivato Certificato SQL Server generato automaticamente I certificati autofirmati non vengono visualizzati in questo archivio.

Quando si stabiliscono connessioni crittografate a SQL Server, Il canale sicuro (Schannel) crea l'elenco delle autorità di certificazione attendibili eseguendo una ricerca nell'archivio delle Autorità di certificazione radice attendibili nel computer locale. Durante l'handshake TLS, il server invia il certificato di chiave pubblica al client. L'emittente di un certificato a chiave pubblica è noto come Autorità di certificazione (CA). Il client deve assicurarsi che l'autorità di certificazione sia attendibile dal client. Ciò è possibile conoscendo in anticipo la chiave pubblica delle CA attendibili. Quando Schannel rileva un certificato emesso da un'autorità di certificazione non attendibile, ad esempio nei due casi precedenti, viene visualizzato il messaggio di errore elencato nella sezione Sintomi .

Risoluzione

Se si utilizza intenzionalmente un certificato di un'autorità non attendibile o un certificato autofirmato per crittografare le connessioni a SQL Server, è possibile utilizzare una delle opzioni seguenti:

Per lo scenario 1, aggiungere l'autorità di certificazione all'archivio Autorità di certificazione radice attendibili nel computer client che avvia la connessione crittografata. A tale scopo, completare l'opzione Esporta il certificato server e Installare l'autorità di certificazione radice (CA) nelle procedure del computer client elencate nelle sezioni successive di tale sequenza.

Esportare il certificato del server

Nell'esempio viene utilizzato un file denominato caCert.cer come file di certificato. È necessario ottenere questo file di certificato dal server. I passaggi seguenti illustrano come esportare il certificato del server in un file:

  1. Fare clic sul pulsante Start, scegliere Esegui e quindi digitare MMC. (MMC è un acronimo di Microsoft Management Console.)

  2. In MMC, aprire Certificati.

  3. Espandere Personale e quindi Certificati.

  4. Fare clic con il pulsante destro del mouse sul certificato del server, quindi selezionare Tutte le attività->Esporta.

  5. Fare clic su Avanti per andare oltre la finestra di benvenuto della procedura guidata per l'Esportazione certificati.

  6. Verificare che No, non esportare la chiave privata sia selezionata e quindi selezionare Avanti.

  7. Assicurarsi che il file binario con codifica DER X.509 (.CER) oppure con codifica Base-64 X.509 (.CER) sia selezionato e quindi fare clic su Avanti.

  8. Immettere un nome del file di esportazione.

  9. Fare clic su Avanti e quindi su Fine per esportare il certificato.

Installare l'autorità di certificazione (CA) radice nel computer client

  1. Nel computer client, avviare lo snap-in Certificati per MMC e quindi aggiungere lo snap-in Certificati.

  2. Nella finestra di dialogo Snap-in Certificati selezionare Account computer e quindi selezionare Avanti.

  3. Nel riquadro Seleziona computer selezionare Computer locale: (il computer in cui è in esecuzione la console) e quindi selezionare Fine.

  4. Scegliere OK per chiudere la finestra di dialogo Aggiungi o rimuovi snap-in.

  5. Nel riquadro sinistro di MMC, espandere il nodo Certificati (computer locale).

  6. Espandere il nodo Autorità di certificazione radice attendibili , fare clic con il pulsante destro del mouse sulla sottocartella Certificati , selezionare Tutte le attività e quindi selezionare Importa.

  7. Nella pagina Inizialedell'Importazione guidata certificati selezionare Avanti.

  8. Nella pagina File da importare selezionare Sfoglia.

  9. Passare al percorso del file del certificato caCert.cer , selezionare il file e quindi selezionare Apri.

  10. Nella pagina File da importare selezionare Avanti.

  11. Nella pagina Archivio certificati accettare la selezione predefinita e quindi selezionare Avanti.

  12. Nella pagina Completamento importazione guidata certificati selezionare Fine.

Per gli scenari 1 e 2, impostare l'impostazione Trust Server Certificate su true nell'applicazione client.

Per altre informazioni su come eseguire questa operazione, vedere gli argomenti seguenti:

Nota

Se si usa SQL Server Management Studio, selezionare la scheda Opzioni e selezionare l'opzione Attendibilità certificato server nella scheda Proprietà connessione.

Attenzione: Le connessioni SSL crittografate tramite un certificato autofirmato non garantiscono una sicurezza avanzata. Sono soggette ad attacchi man-in-the-middle. Non è consigliabile basarsi su SSL utilizzando certificati autofirmati in un ambiente di produzione oppure su server connessi a Internet.

Se la configurazione illustrata nelle sezioni precedenti di questo articolo non è voluta, è possibile utilizzare una delle opzioni seguenti per risolvere il problema:

  • Configurare il motore di database per l'utilizzo della crittografia in base alla procedura descritta in "Abilitare le connessioni crittografate nel Motore di database"

  • Se la crittografia non è necessaria:

    • Disabilitare le eventuali impostazioni di crittografia nell'applicazione client.

    • Disabilitare la crittografia lato server utilizzando Gestione configurazione SQL Server. Per altre informazioni su come eseguire questa operazione, vedere Configurare il server.