2013-03-14 20 views
6

Sto provando a impostare ssl per mysql facendo riferimento a this.
Sono in grado di completare primi 3 punti, ma avendo problema con il 4 °, che è la seguente:Integrazione di ssl con mysql - Accesso negato

GRANT ALL PRIVILEGES ON *.* TO 'ssluser'@'localhost' IDENTIFIED BY 'ssluser' REQUIRE SSL; 
FLUSH PRIVILEGES; 

Poi riavviare il server MySQL.

Dopo l'esecuzione di questa affermazione quando provo a fare funzionare mysql -ussluser -pssluser -P3306 --ssl-key="C:\Program Files\MySQL\MySQL Server 5.5\certs\ca-cert.pem",
si vede seguente errore: Accesso negato per l'utente 'ssluser' @ 'localhost' (usando la password: YES)
sto usando qui è la mia porta predefinita.

Come può dire Accesso negato quando ho già eseguito GRANT dichiarazione.

Nota che

  • ho eseguito mysql -ussluser -pssluserprima utilizzare GRANT dichiarazione con REQUIRE SSL e sono stato in grado di connettersi a mysql.

  • Se provo SHOW GRANTS FOR 'ssluser'@'localhost';
    ottengo

    GRANT ALL PRIVILEGES ON *.* TO \'ssluser\'@\'localhost\' IDENTIFIED BY PASSWORD \'*C56A6573BEE146CB8243543295FD80ADCE588EFF\' REQUIRE SSL WITH GRANT OPTION 
    
  • Prima di eseguire GRANT dichiarazione, sono stato in grado di connettersi al banco di lavoro attraverso ssluser. Ma ora sta dando l'accesso negato errore.

  • Quando uso show global variables like 'have_%ssl'; ricevo

    have_openssl DISABILITATA HAVE_SSL DISABILITATA

  • e quando uso questo SHOW STATUS LIKE 'Ssl_cipher'; ho

    Ssl_cipher _________

  • ho creato tutti i server e client certificati e li ha inseriti in 012 Directoryall'interno della directory radice mysql server.

Ci sto provando da un paio di giorni ma non ho trovato nulla. Qualsiasi aiuto apprezzato.

Lo sto facendo per la prima volta. Qualcuno può guidarmi attraverso la procedura dettagliata per fare questo?

risposta

6

Oggi stavo lottando con un messaggio di errore simile ed ecco cosa ho scoperto.

  1. L'opzione "REQUIRE SSL" per GRANT richiede solo SSL per la connessione e non richiede un certificato lato client da fornire.
  2. La CLI mysql non gestisce SSL come mi aspettavo. Ad esempio, su MySQL 5.5, l'opzione --ssl non sembra abilitare realmente il trasporto SSL.
  3. Ho dovuto aggiungere l'opzione --ssl-cipher=DHE-RSA-AES256-SHA:AES128-SHA per consentire al client mysql di utilizzare veramente SSL e consentire l'autenticazione con il client.

Ecco i passaggi esatti che ho usato per impostare il mio nuovo utente:

CREATE USER 'ssl-user'@'%' identified by '<password>'; 
GRANT USAGE ON *.* TO 'ssl-user'@'%' identified by '<password>' REQUIRE SSL; 
GRANT ALL PRIVILEGES ON `your-database`.* TO 'ssl-user'@'%'; 
+0

aggiungendo --ssl-ca rende anche il trucco – Igor

+0

Per quanto mi riguarda ho dovuto aggiungere --ssl-cipher = DHE- RSA-AES256-SHA: AES128-SHA e abbreviare la password a 50 caratteri per consentire la connessione remota. – Khronos

+0

+1: è stato finalmente possibile connettere MySQL Workbench tramite SSL specificando l'impostazione del cifrario SSL su 'DHE-RSA-AES256-SHA: AES128-SHA'! – antak