Risolto - Errore di connessione MySQL: verifica del certificato non riuscita

15 feb 2023 3 min di lettura
Risolto - Errore di connessione MySQL: verifica del certificato non riuscita
Indice dei contenuti

Introduzione

MySQL è un sistema open source di gestione di database relazionali. In altre parole, è un programma che permette di archiviare, organizzare e gestire grandi quantità di dati in tabelle separate che sono collegate tra di loro tramite chiavi relazionali. MySQL viene spesso utilizzato per supportare i siti web dinamici, come quelli basati su CMS come WordPress.

Il sistema MySQL è costituito da due parti principali: un server, che è il programma che gestisce i dati e fornisce l'accesso ai dati, e un client a riga di comando, che permette agli utenti di interagire con il server e di eseguire query sui dati. MySQL è completamente gratuito con licenza open source nella sua incarnazione più diffusa, ma è disponibile anche in versioni a pagamento per chi necessita di funzionalità più avanzate o di supporto dedicato.

In sintesi, MySQL è un software di database relazionale molto diffuso che consente di gestire e organizzare grandi quantità di dati.

Problema

L'errore di connessione SSL connection error: error:0A000086:SSL routines::certificate verify failed error si verifica solitamente quando si stabilisce una connessione SSL a un server MySQL. Stavo configurando la replica tra due server MySQL in esecuzione con MySQL versione 8.0. Dopo aver configurato la replica, il comando "SHOW SLAVE STATUS" sull'istanza slave mi mostra il seguente errore:

Last_IO_Error: error connecting to master ‘[email protected]:3306’ – retry-time: 60 retries: 3 message: SSL connection error: error:0A000086:SSL routines::certificate verify failed

Quindi ho provato a connettere il server master dallo slave utilizzando la riga di comando, con il certificato client. Ancora una volta ho ricevuto il seguente errore con la connessione:

mysql -h 192.168.1.100 -u repl_user -p --ssl-ca=/etc/mysql/certs/ca.pem --ssl-cert=/etc/mysql/certs/client-cert.pem --ssl-key=/etc/mysql/certs/client-key.pem 
Enter password:
ERROR 2026 (HY000): SSL connection error: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

Cause possibili

Questo errore può verificarsi a causa di diversi motivi. Ecco alcune possibili cause:

  • Il certificato SSL del server MySQL non è considerato attendibile dal client perché è autofirmato o non firmato da un'autorità di certificazione (CA) considerata attendibile dal client.
  • Il certificato SSL del server MySQL è scaduto.
  • Il certificato SSL del server MySQL non è configurato correttamente.
  • Il client utilizza una vecchia versione della libreria client MySQL che non supporta il certificato SSL del server.

Soluzione

Controlla se entrambi gli orologi di sistema sono sincronizzati.

Quindi verifica il certificato client e server con il file CA e assicurati che sia tutto a posto. Utilizzare il seguente comando per verificare i certificati:

openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem 
server-cert.pem: OK
client-cert.pem: OK

Assicurati di impostare un "Nome comune (FQDN)" diverso per il certificato CA e il certificato master/client.

Controllare lo stato delle variabili SSL/TLS digitando. Assicurarsi che il server utilizzi il certificato corretto.

SHOW VARIABLES LIKE '%ssl%'; 
+-------------------------------------+----------------------------------+
| have_openssl                        | YES                              |
| have_ssl                            | YES                              |
| ssl_ca                              | /etc/mysql/certs/ca-cert.pem     |
| ssl_capath                          |                                  |
| ssl_cert                            | /etc/mysql/certs/server-cert.pem |
| ssl_cipher                          |                                  |
| ssl_crl                             |                                  |
| ssl_crlpath                         |                                  |
| ssl_fips_mode                       | OFF                              |
| ssl_key                             | /etc/mysql/certs/server-key.pem  |
| ssl_session_cache_mode              | ON                               |
| ssl_session_cache_timeout           | 300                              |
+-------------------------------------+----------------------------------+
27 rows in set (0.01 sec)

Infine assicurati di utilizzare il nome utente, il nome host e la password del database corretti per la connessione.

Conclusione

In conclusione, l'errore di connessione SSL: errore:0A000086:routine SSL::certificato verifica errore non riuscito può verificarsi quando si stabilisce una connessione SSL a un server MySQL per diversi motivi, tra cui un certificato SSL non attendibile o scaduto, un certificato SSL mal configurato, o una libreria client MySQL obsoleta. Per risolvere questo errore, puoi importare il certificato SSL del server nel truststore del client, rinnovare il certificato SSL, controllare la configurazione SSL del server o aggiornare la libreria del client MySQL a una versione più recente che supporti il ​​certificato SSL del server.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.