Dopo aver creato un certificato SSL autofirmato, ho configurato il mio server MySQL remoto per usarli (e SSL è abilitato)
Ho inserito il mio server remoto e provo a collegarmi al suo mysqld usando SSL (il server MySQL è 5.5.25) ..
mysql -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key --ssl-ca=ca.cert
Enter password:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)
Ok, ricordo di aver letto un problema con la connessione allo stesso server tramite SSL. Quindi scarico le chiavi del client nella mia casella locale e provo da lì ...
mysql -h <server> -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key --ssl-ca=ca.cert
Enter password:
ERROR 2026 (HY000): SSL connection error
Non è chiaro a cosa si riferisca questo errore "Errore di connessione SSL", ma se ometto -ssl-ca
, sono in grado di connettermi utilizzando SSL ..
mysql -h <server> -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.5.25 MySQL Community Server (GPL)
Tuttavia, credo che questo stia solo crittografando la connessione e non verificando effettivamente la validità del certificato (il che significa che sarei potenzialmente vulnerabile all'attacco man-in-middle)
I certificati SSL sono validi (sebbene autofirmati) e non hanno una passphrase su di essi. Quindi la mia domanda è: cosa sto facendo di sbagliato? Come posso connettermi tramite SSL, usando un certificato autofirmato?
La versione di MySQL Server è 5.5.25 e il server e i client sono CentOS 5.
Grazie per qualsiasi consiglio
Modifica : si noti che in tutti i casi, il comando viene emesso dalla stessa directory in cui risiedono le chiavi ssl (quindi nessun percorso assoluto)
Modifica (in risposta a mgorven):
ca.cert
è il certificato dell'autorità di certificazione, che dovrebbe dire a mysql che la mia autorità di certificazione è attendibile.
La configurazione da my.cnf
è
[mysqld]
ssl-ca=/etc/ssl/mysql/ca.cert
ssl-cert=/etc/ssl/mysql/server.cert
ssl-key=/etc/ssl/mysql/server.key
Ho anche provato ad aggiungere, ssl-cipher=DHE-RSA-AES256-SHA
ma da allora l'ho rimosso in quanto non ha aiutato.
ca.cert
? È il certificato autofirmato del server? Stai utilizzando i certificati client per l'autenticazione? Fornire la configurazione relativa a SSL sul server.