<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>27100</bug_id>
          
          <creation_ts>2012-03-21 11:09:49 +0400</creation_ts>
          <short_desc>Incomplete chroot environment prevents connections via SSL</short_desc>
          <delta_ts>2012-03-23 00:55:55 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>MySQL-server</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolay A. Fetisov">naf</reporter>
          <assigned_to name="Michael Shigorin">mike</assigned_to>
          <cc>mike</cc>
    
    <cc>nickel</cc>
    
    <cc>rider</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>129927</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolay A. Fetisov">naf</who>
    <bug_when>2012-03-21 11:09:49 +0400</bug_when>
    <thetext>Для текущего 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. 
После перезапуска сервера согласно &quot;SHOW VARIABLES LIKE &apos;%ssl%&apos;&quot; поддержка SSL в нём включена.

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

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

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

Причина - отсутствие внутри 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&gt; status;
...
SSL:                    Cipher in use is DHE-RSA-AES256-SHA
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129935</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-03-21 13:28:53 +0400</bug_when>
    <thetext>Спасибо, так и сделал в /etc/chroot.d/mysql.lib.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129938</commentid>
    <comment_count>2</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2012-03-21 14:11:19 +0400</bug_when>
    <thetext>MySQL-5.1.61-alt2 -&gt; sisyphus:

* Wed Mar 21 2012 Michael Shigorin &lt;mike@altlinux&gt; 5.1.61-alt2
- create /dev/urandom in chroot so SSL support actually works;
  thanks naf@ (closes: #27100)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129963</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolay A. Fetisov">naf</who>
    <bug_when>2012-03-22 13:02:54 +0400</bug_when>
    <thetext>Спасибо!

... Хотя странно это всё. /dev/urandom, по документации, нужен для встроенного yaSSL - т.е. для &lt;= 5.1.56-alt1 . Упоминаний о его необходимости в сборках с OpenSSL нет, и что-то в коде MySQL его тоже сходу увидеть не удалось. Но без него не работает - ни 5.1.56-alt1, ни сборки с OpenSSL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130004</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-03-23 00:55:55 +0400</bug_when>
    <thetext>Про yassl/openssl заметил, но сам с SSL его никогда не применял -- либо сокет, либо в пределах одного физического хоста опять же...</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>