Condividi tramite


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

Questo articolo illustra come 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 di 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 server.

Risoluzione

Per risolvere il problema, utilizzare uno dei metodi seguenti:

  • Non specificare alcun certificato per consentire al server SQL di generare un certificato autofirmato. A tale scopo, lasciare vuota la casella Certificato nel 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 di SQL Server.

  • Usare Gestione configurazione SQL Server per configurare il certificato. A partire da SQL Server 2019, è possibile usare Gestione configurazione SQL per visualizzare e convalidare i certificati installati in un'istanza di SQL Server, identificando i certificati che potrebbero essere vicini 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 adatti come certificati server. Per determinare il provider di un certificato, eseguire il comando al prompt dei comandi: certutil -v -store my.

Nella sezione Sintomi è indicato il messaggio di errore seguente:

L'inizializzazione TDSSNIClient del server di data e ora non è riuscita con errore 0x80092004, 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.