SQL Server servizio non può essere avviato dopo aver configurato un'istanza per l'uso di un certificato Secure Sockets Layer

Questo articolo consente di risolvere un problema che si verifica dopo la configurazione di un certificato SSL che usa microsoft Enhanced Cryptographic Provider 1.0.

Versione originale del prodotto: SQL Server
Numero KB originale: 928779

Sintomi

In questo scenario si configura un'istanza di SQL Server per l'uso di un certificato SSL. Il certificato SSL usa il provider di crittografia avanzato 1.0.

Quando si tenta di avviare il servizio SQL Server in questo scenario, i messaggi di errore seguenti vengono scritti nel file errorlog SQL Server:

Error: 26014, Severity: 16, State: 1.
Unable to load user-specified certificate [Cert Hash(sha1) "%hs"]. The server will not accept a connection. You should verify that the certificate is correctly installed. See "Configuring Certificate for Use by SSL" in Books Online.

Error: 17182, Severity: 16, State: 1.
TDSSNIClient initialization failed with error 0x80092004, status code 0x80. Reason: Unable to initialize SSL support. Cannot find object or property.

Error: 17826, Severity: 18, State: 3.
Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.

Error: 17120, Severity: 16, State: 1.
SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.

Causa

Questo problema si verifica perché non è possibile usare un certificato con il provider di crittografia avanzato versione 1.0 come certificato del server.

Risoluzione

Per risolvere il problema, usare uno dei metodi seguenti:

  • Non specificare alcun certificato per consentire a SQL Server di generare un certificato autofirma. A tale scopo, lasciare vuota la casella Certificato nella Gestione configurazione SQL Server.

    Per altre informazioni, visitare i siti seguenti:

  • Usare un certificato che usa il provider di crittografia del canale RSA per il certificato SQL Server.

  • Usare Gestione configurazione SQL Server per configurare il certificato. A partire da SQL Server 2019, è possibile usare il Configuration Manager SQL per visualizzare e convalidare i certificati installati in un'istanza di SQL Server, identificando quali certificati potrebbero essere prossimi alla scadenza e ad altre attività. Per altre informazioni, vedere Gestione certificati (Gestione configurazione SQL Server)

Ulteriori informazioni

I certificati SSL che usano il provider di crittografia avanzato 1.0 possono essere usati per i certificati client. Tuttavia, i certificati non sono idonei come certificati server. Per determinare il provider di un certificato, eseguire il comando al prompt dei comandi: certutil -v -store my.

Il messaggio di errore seguente è indicato nella sezione Sintomi :

Inizializzazione TDSSNIClient del server di data e ora non riuscita con 0x80092004 di errore, codice di stato 0x80.

In questo messaggio di errore lo stato di errore 0x80 indica che si è verificato un problema nel certificato SSL. Inoltre, 0x80092004 è un codice di errore SSPI (Security Support Provider Interface) che si traduce in CRYPT_E_NOT_FOUND.