Bug 27100 - Incomplete chroot environment prevents connections via SSL
Summary: Incomplete chroot environment prevents connections via SSL
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: MySQL-server (show other bugs)
Version: unstable
Hardware: all Linux
: P3 major
Assignee: Michael Shigorin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-21 11:09 MSK by Nikolay A. Fetisov
Modified: 2012-03-23 00:55 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikolay A. Fetisov 2012-03-21 11:09:49 MSK
Для текущего 5.1.61-alt1, а также как минимум для 5.1.56-alt4 из t6, невозможны соединения с сервером с использованием SSL.

Настройка сервера:
[mysqld]
....
ssl=1
ssl-cert=/etc/mysql/server.cert
ssl-key=/etc/mysql/server.key
....

Сертификаты создаются с использованием cert-sh-functions. 
/etc/mysql/ создаётся внутри chroot. 
После перезапуска сервера согласно "SHOW VARIABLES LIKE '%ssl%'" поддержка SSL в нём включена.

Подключение клиента через SSL заканчивается ошибкой:

# mysql --ssl --ssl-ca=/var/lib/mysql/etc/mysql/server.cert   
ERROR 2026 (HY000): SSL connection error

Сообщение на стороне сервера - "08S01Bad handshake".

Причина - отсутствие внутри chroot /dev/urandom .

После создания устройства и перезапуска сервера
mkdir /var/lib/mysql/dev
mknod /var/lib/mysql/dev/urandom c 1 9
chown root:root /var/lib/mysql/dev /var/lib/mysql/dev/urandom
service mysqld restart

соединения через SSL начинают работать:
# mysql --ssl --ssl-ca=/var/lib/mysql/etc/mysql/server.cert
....
mysql> status;
...
SSL:                    Cipher in use is DHE-RSA-AES256-SHA
...
Comment 1 Michael Shigorin 2012-03-21 13:28:53 MSK
Спасибо, так и сделал в /etc/chroot.d/mysql.lib.
Comment 2 Repository Robot 2012-03-21 14:11:19 MSK
MySQL-5.1.61-alt2 -> sisyphus:

* Wed Mar 21 2012 Michael Shigorin <mike@altlinux> 5.1.61-alt2
- create /dev/urandom in chroot so SSL support actually works;
  thanks naf@ (closes: #27100)
Comment 3 Nikolay A. Fetisov 2012-03-22 13:02:54 MSK
Спасибо!

... Хотя странно это всё. /dev/urandom, по документации, нужен для встроенного yaSSL - т.е. для <= 5.1.56-alt1 . Упоминаний о его необходимости в сборках с OpenSSL нет, и что-то в коде MySQL его тоже сходу увидеть не удалось. Но без него не работает - ни 5.1.56-alt1, ни сборки с OpenSSL.
Comment 4 Michael Shigorin 2012-03-23 00:55:55 MSK
Про yassl/openssl заметил, но сам с SSL его никогда не применял -- либо сокет, либо в пределах одного физического хоста опять же...