Введение
MySQL — это система управления реляционными базами данных с открытым исходным кодом. Другими словами, это программа, позволяющая хранить, систематизировать и управлять большими объемами данных в отдельных таблицах, связанных друг с другом с помощью реляционных ключей. MySQL часто используется для поддержки динамических веб-сайтов, например, основанных на CMS, таких как WordPress.
Система MySQL состоит из двух основных частей: сервера, представляющего собой программу, которая управляет данными и обеспечивает доступ к данным, и клиента командной строки, который позволяет пользователям взаимодействовать с сервером и выполнять запросы к данным. MySQL полностью бесплатен по лицензии с открытым исходным кодом в своем наиболее распространенном воплощении, но он также доступен в платных версиях для тех, кому нужны более продвинутые функции или специальная поддержка.
Таким образом, MySQL — это очень популярное программное обеспечение для реляционных баз данных, которое позволяет вам управлять и организовывать большие объемы данных.
Проблема
Ошибка SSL-соединения: ошибка: 0A000086: SSL-процедуры:: Ошибка проверки сертификата обычно возникает при установлении SSL-соединения с сервером MySQL. Я настраивал репликацию между двумя серверами MySQL, работающими под управлением MySQL версии 8.0. После настройки репликации команда «SHOW SLAVE STATUS» на ведомом экземпляре показывает следующую ошибку:
Last_IO_Error: ошибка при подключении к мастеру '[email protected]:3306' - время повторной попытки: 60 повторных попыток: 3 сообщение: ошибка соединения SSL: ошибка: 0A000086: подпрограммы SSL:: проверка сертификата не удалась
Затем я попытался подключить главный сервер к ведомому с помощью командной строки с сертификатом клиента. Снова я получил следующую ошибку с подключением:
mysql -h 192.168.1.100 -u repl_user -p --ssl-ca=/etc/mysql/certs/ca.pem --ssl-cert=/etc/mysql/certs/client-cert.pem --ssl-key=/etc/mysql/certs/client-key.pem
Enter password:
ERROR 2026 (HY000): SSL connection error: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Возможные причины
Эта ошибка может возникать по нескольким причинам. Вот некоторые возможные причины:
- Клиент не доверяет SSL-сертификату сервера MySQL, потому что он самоподписан или не подписан центром сертификации (CA), которому доверяет клиент.
- Срок действия SSL-сертификата сервера MySQL истек.
- SSL-сертификат сервера MySQL настроен неправильно.
- Клиент использует старую версию клиентской библиотеки MySQL, которая не поддерживает SSL-сертификат сервера.
Решение
Проверьте, синхронизированы ли оба системных часа.
Затем проверьте сертификат клиента и сервера с файлом CA и убедитесь, что все в порядке. Используйте следующую команду для проверки сертификатов:
openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem
server-cert.pem: OK
client-cert.pem: OK
Убедитесь, что вы установили другое «Общее имя (FQDN)» для сертификата ЦС и главного/клиентского сертификата.
Проверьте состояние переменных SSL/TLS, введя. Убедитесь, что сервер использует правильный сертификат.
SHOW VARIABLES LIKE '%ssl%';
+-------------------------------------+----------------------------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | /etc/mysql/certs/ca-cert.pem |
| ssl_capath | |
| ssl_cert | /etc/mysql/certs/server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_fips_mode | OFF |
| ssl_key | /etc/mysql/certs/server-key.pem |
| ssl_session_cache_mode | ON |
| ssl_session_cache_timeout | 300 |
+-------------------------------------+----------------------------------+
27 rows in set (0.01 sec)
Наконец, убедитесь, что вы используете правильное имя пользователя базы данных, имя хоста и пароль для подключения.
Заключение
В заключение, ошибка соединения SSL: ошибка: 0A000086: рутинная ошибка проверки SSL:: сертификата может возникнуть при установлении соединения SSL с сервером MySQL по нескольким причинам, включая ненадежный или просроченный сертификат SSL, неправильно настроенный сертификат SSL или устаревшая клиентская библиотека MySQL. Чтобы устранить эту ошибку, вы можете импортировать сертификат SSL сервера в хранилище доверенных сертификатов клиента, обновить сертификат SSL, проверить конфигурацию SSL сервера или обновить клиентскую библиотеку MySQL до более новой версии, поддерживающей сертификат SSL сервера.