Після створення самопідписаного сертифіката SSL я налаштував свій віддалений сервер MySQL для їх використання (і SSL увімкнено)
Я сш на свій віддалений сервер і спробую підключитися до власного mysqld за допомогою SSL (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)
Гаразд, я пам’ятаю, що читав там певну проблему з підключенням до того ж сервера через SSL. Тож я завантажую клієнтські ключі до моєї локальної скриньки і тестую звідти ...
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
Незрозуміло, на що посилається ця помилка "SSL-з'єднання", але якщо я опустіть -ssl-ca
, то я можу підключитися за допомогою 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)
Однак я вважаю, що це лише шифрує з'єднання, а не фактично підтверджує дійсність cert (це означає, що я був би потенційно вразливий до атаки "людина-посеред")
Сертифікати SSL є дійсними (хоча і самостійно підписані), і не мають на них парольну фразу. Отже, моє запитання: що я роблю неправильно? Як я можу підключитися через SSL, використовуючи самопідписаний сертифікат?
Версія MySQL Server 5.5.25, а сервер і клієнти - CentOS 5.
Дякую за будь-яку пораду
Редагувати : Зауважте, що у всіх випадках команда видається з того самого каталогу, де розташовані ключі ssl (отже, немає абсолютного шляху)
Правка (у відповідь на mgorven):
ca.cert
це сертифікат Сертифіката, який повинен повідомити mysql, що моєму сертифікату довіряють.
Конфігурація з my.cnf
є
[mysqld]
ssl-ca=/etc/ssl/mysql/ca.cert
ssl-cert=/etc/ssl/mysql/server.cert
ssl-key=/etc/ssl/mysql/server.key
Я також спробував додати, ssl-cipher=DHE-RSA-AES256-SHA
але з тих пір видалив його, оскільки це не допомогло.
ca.cert
? Це сертифікат самопідписаного сервера? Чи використовуєте ви клієнтські сертифікати для аутентифікації? Укажіть конфігурацію, пов’язану з SSL, на сервері.