Po utworzeniu samopodpisanego certyfikatu SSL skonfigurowałem mój zdalny serwer MySQL, aby z nich korzystał (a protokół SSL jest włączony)
Przesyłam ssh do mojego zdalnego serwera i próbuję połączyć się z własnym mysqld za pomocą SSL (serwer MySQL to 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, pamiętam, że przeczytałem problem z połączeniem się z tym samym serwerem przez SSL. Więc pobieram klucze klienta do mojej skrzynki lokalnej i testuję stamtąd ...
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
Nie jest jasne, do czego odnosi się ten błąd „Błąd połączenia SSL”, ale jeśli go pominę -ssl-ca
, będę mógł połączyć się za pomocą 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)
Uważam jednak, że jest to tylko szyfrowanie połączenia, a nie weryfikacja ważności certyfikatu (co oznacza, że byłbym potencjalnie narażony na atak man-in-middle)
Certyfikaty SSL są ważne (choć podpisane przez siebie) i nie zawierają hasła. Więc moje pytanie brzmi: co robię źle? Jak mogę połączyć się przez SSL, używając certyfikatu z podpisem własnym?
Wersja MySQL Server to 5.5.25, a serwer i klienci to CentOS 5.
Dziękuję za wszelkie porady
Edycja : Zauważ, że we wszystkich przypadkach polecenie jest wydawane z tego samego katalogu, w którym znajdują się klucze ssl (stąd brak ścieżki bezwzględnej)
Edycja (w odpowiedzi na mgorven): ca.cert
to certyfikat ośrodka certyfikacji, który powinien informować mysql, że mój ośrodek
certyfikacji jest zaufany.
Konfiguracja z my.cnf
jest
[mysqld]
ssl-ca=/etc/ssl/mysql/ca.cert
ssl-cert=/etc/ssl/mysql/server.cert
ssl-key=/etc/ssl/mysql/server.key
Próbowałem również dodać, ssl-cipher=DHE-RSA-AES256-SHA
ale od tego czasu go usunąłem, ponieważ nie pomogło.
ca.cert
? Czy jest to samopodpisany certyfikat serwera? Czy używasz certyfikatów klienta do uwierzytelniania? Podaj konfigurację związaną z SSL na serwerze.