Назад | Перейти на главную страницу

Конфигурация MariaDB SSL - использование сертификата Let's Encrypt

У меня проблема с принуждением MariaDB использовать мои файлы сертификатов SSL в Debian 8.

Apache2 отлично работает с текущими правами доступа к файлам в / etc / letsencrypt / * Единственная служба, которая имеет какие-либо проблемы с текущими сертификатами, - это MariaDB.

Я пробовал использовать ACL для файлов в /etc/letsencrypt/live/domain/*.pem:

setfacl -m "u:mysql:r--" /etc/letsencrypt/live/domain/*.pem

Это не сработало. После запуска bash от имени пользователя mysql я обнаружил, что / etc / letsencrypt / live недоступен для пользователя mysql. Итак, я запустил setfacl в live и доменных каталогах.

MariaDB по-прежнему не может получить доступ к этим сертификатам.

Итак ... после копирования файлов .pem в / etc / mysql и смены их владельца на mysql: mysql это вроде сработало. Теперь я получаю:

mysqld[4131]: 180211  0:27:54 [Warning] Failed to setup SSL
mysqld[4131]: 180211  0:27:54 [Warning] SSL error: Unable to get private key
mysqld[4131]: 180211  0:27:54 [Note] Server socket created on IP: 'x.x.x.x'.
mysqld[4131]: 180211  0:27:54 [Note] /usr/sbin/mysqld: ready for connections.

И эффект следующий:

mysql --ssl -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 137
Server version: 10.0.32-MariaDB-0+deb8u1 (Debian)

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SHOW STATUS LIKE 'Ssl_cipher';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Ssl_cipher    |       |
+---------------+-------+
1 row in set (0.01 sec)

MariaDB [(none)]> 

Мой текущий раздел SSL в /etc/mysql/my.cnf:

ssl-ca=/etc/mysql/chain.pem
ssl-cert=/etc/mysql/cert.pem
ssl-key=/etc/mysql/privkey.pem

Что я делаю не так? Что мне нужно сделать, чтобы MariaDB использовал этот SSL? Почему у других служб вообще нет проблем с разрешениями по умолчанию?

После предложения из этого комментария: Конфигурация MariaDB SSL - использование сертификата Let's Encrypt

Что мой ключ находится в неправильном формате, я пытался преобразовать этот ключ с помощью openssl в разные формат.

openssl rsa -in ./privkey.pem -out ./privkeyrsa.pem

И после настройки разрешений (0400) и владения этим файлом (mysql: mysql) SSL начал работать должным образом. (и, конечно, строка конфигурации, указывающая на правильный сертификат)

Я до сих пор не знаю, следует ли оставить разрешения SSL-сертификата такими, какие они есть, или я должен изменить их и потенциально исправить проблему с / etc / letsencrypt / live, недоступными для mysql и доступными для всего остального (даже с правильным ACL для пользователя mysql).

Но если он работает, и только mysql имеет доступ к этим файлам, все должно быть в порядке.