Я пытаюсь защитить свою работу с помощью SSL-соединения между некоторыми приложениями и моими базами данных.
В первый раз я ищу, как создавать сертификаты, и делаю что-то вроде этого:
[...]$ mkdir certificats && cd certificats
[...]$ openssl genrsa 2048 > ca-key.pem
[...]$ openssl req -new -x509 -nodes -days 500 -key ca-key.pem > ca-cert.pem
[...]$ openssl req -newkey rsa:2048 -days 500 -nodes
-keyout server-key.pem > server-req.pem
[...]$ openssl x509 -req -in server-req.pem -days 500
-CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem
[...]$ openssl req -newkey rsa:2048 -days 500 -nodes
-keyout client-key.pem > client-req.pem
[...]$ openssl x509 -req -in client-req.pem -days 500 -CA ca-cert.pem
-CAkey ca-key.pem -set_serial 01 > client-cert.pem
Я отвечаю на все заданные вопросы следующим образом: тот же ответ на три файла, за исключением «общего имени» (где-то я видел, что это может вызвать проблемы).
После этого я сделал так:
[...]$ vim /etc/my.cnf
добавить следующие правила (на [mysqld]):
ssl-ca=/etc/ssl/certs_mysql/ca-cert.pem
ssl-cert=/etc/ssl/certs_mysql/server-cert.pem
ssl-key=/etc/ssl/certs_mysql/server-key.pem
Теперь, когда я вхожу в обычную учетную запись, я вижу использование
SHOW VARIABLES LIKE '%ssl%';
чем включен ssl. (см. путь 3 + 2 «ДА»)
Итак, теперь для подключения мне нужно использовать:
[...]$ mysql -u user -ppassword -h localhost --ssl-ca=ca-cert.pem
--ssl-key=client-key.pem --ssl-cert=client-cert.pem
право ? (пользователь находится в режиме REQUIRE SSL).
Но это не сработало:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)
Если я удалю "ca-cert.pem" из соединения, это сработает "хорошо". Я могу подключиться, и я могу видеть «Ssl_cipher» с чем-то вроде «xxx-xxx-AES264-xxx», когда я написал «\ s».
Итак, я попытался добавить:
[client]
ssl-ca=/etc/ssl/certs_mysql/ca-cert.pem
ssl-cert=/etc/ssl/certs_mysql/client-cert.pem
ssl-key=/etc/ssl/certs_mysql/client-key.pem
Но когда я добавляю «ssl-x» в раздел «client», mysql stop, НО не перезапускается, используя
[...]$ service mysqld restart
Почему я не могу записать конфигурацию ssl в клиентском разделе?
Я пытаюсь подключиться к своим базам данных с помощью файла PHP, когда я использовал 3 файла, соединение отклоняется, но если я использовал только «client-key.pem» и «client-cert.pem», я подключился.
я где-то видел чем использую
[...]$ cat client-cert.pem server-cert.pem > ca-cert.pem
может решить проблему, но используемый сертификат содержит 2 сертификата?
Итак, проблема в ca-cert.pem? Не распознается как "настоящий сертификат", поэтому в соединении отказано? Но почему я не могу использовать [клиент]?
Заранее спасибо за ответы
Это слишком долго для публикации в качестве комментария, хотя это не полный ответ. Но если мы получим эту информацию, мы сможем сделать еще несколько шагов. Итак, вот и:
Чтобы решить проблему с SSL, я хотел бы начать с исключения mysql из уравнения. Итак, начните с использования только SSL для подключения, например:
openssl s_client -connect localhost:MYSQLPORTNR -cert client.pem -key client-key.pem -CAfile ca-cert.pem
где MYSQLPORTNR, конечно же, следует заменить на номер порта, на котором вы запускаете mysql. Затем добавьте результат этого в свой пост.