MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 04.09.2006 17:59:17 von christoph.klempau

Hallöchen zusammen,

ich habe ein kleines Problem mit dem MySQL Connect per SSL. Es soll von
derzeit drei Webserver auf einen zentralen MySQL Server zugegriffen
werden. Da die Kommunikation zwischen Client (idR. eine PHP
Applikation) und Server verschlüsselt ablaufen soll, habe ich auf dem
MySQL (Version 5.0.24) einen Server und Client Key zum Testen angelegt.
Das funktioniert auch soweit.
Auf den Webservern bin ich wieder nach dem HowTo auf www.mysql.com
vorgegangen. Der Testconnect von lokal zu lokal war ebenfalls wieder
erfolgreich. Allerdings schlägt die Verbindung von remote Client zum
Server mit der Meldung "ERROR 2026 (HY000): SSL connection error" fehl,
sowohl innerhalb der PHP Anwendung als auch per mysql Shell Komando.
Die Zertifikate wurden nach folgender Anleitung erstellt:
http://dev.mysql.com/doc/refman/5.0/en/secure-create-certs.h tml
Ebenfalls beachtet wurde der -day 365 Schalter. Wie gesagt, daß
Problem tritt nur beim TCP Connect übers Netzwerk auf, nicht wenn der
lokale Client sich auf den lokalen Server connectet.

Für Hilfe wäre ich euch dankbar!

VG

Christoph Klempau

Re: MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 04.09.2006 18:30:24 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 04.09.2006 19:29:53 von christoph.klempau

Hallo NG,
und ganz besonder Andreas.


Andreas Kretschmer schrieb:

> Wie wäre es mit Googel? Da trifft man alte Bekannte wie diesen Thread:
> http://www.gatago.com/de/comp/datenbanken/mysql/18356349.htm l
> und tonnenweise Links zu Foren, die ich aufgrund der hochgradigen
> Durchsetzung dieses Mediums mit Idioten aber jetzt zu faul zum lesen bin.

Du wirst es nicht glauben, aber dreimal darfst du raten, welchen Thread
/ Posting mir Google als erstes zum Thema geliefert hat. Stunden bevor
ich hier gepostet habe. Richtig, genau den von dir verlinkten. Aber,
und genau da liegt der Knackpunkt, es wird Off-Topic, da du scheinbar
mehr mit der Form der Message als mit der Lösung des Problems
beschäftigt bist. Der einzig konstruktive Beitrag handelt von einem
Workaround, aber nicht von einer Lösung.

Von den Idioten schließe ich mich jetzt einfach mal dreist aus.

> Aber vielleicht tröstet es Dich, daß es anderen auch so ergeht, und j=
a,
> vielleicht ist es auch eine gute Idee, auf solche Extravaganzen bei
> MySQL derzeit erst mal zu verzichten? Immerhin hat auch Christian Kirsch
> dies schon mal kürzlich hier empfohlen...

Richtig, er hat vorgeschlagen einen SSH Tunnel zu nutzen. Sicherlich
keine schlechte Idee, aber für mich ehr ein Workaround. Zuerst
versucht man es doch mal mit den "Boardmittel", die in diesem Fall
MySQL ja mitliefert oder warum wurde sonst der SSL Support integriert
und ihm ein Kapitel im Handbuch spendiert. Ich versuche eben erst mal
das Problem an sich zu lösen bevor ich einen Workaround bastel.

Trotzdem danke für deinen Link.

Mfg

Christoph Klempau

Re: MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 04.09.2006 20:01:58 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 05.09.2006 10:18:18 von Axel Schwenke

christoph.klempau@gmail.com wrote:
>
> ich habe ein kleines Problem mit dem MySQL Connect per SSL. Es soll von
> derzeit drei Webserver auf einen zentralen MySQL Server zugegriffen
> werden. Da die Kommunikation zwischen Client (idR. eine PHP
> Applikation) und Server verschlüsselt ablaufen soll, habe ich auf dem
> MySQL (Version 5.0.24) einen Server und Client Key zum Testen angelegt.

Erste dumme Zwischenfrage: warum willst du das verschlüsseln? Sind
deine Webserver mit der Datenbank über ein derart unsicheres Netz
verbunden? Ist dir bewußt, daß SSL ordentlich CPU-Leistung frißt?

> Auf den Webservern bin ich wieder nach dem HowTo auf www.mysql.com
> vorgegangen.

An diesem Satz stört mich das Wörtchen "wieder". Den Satz Zertifikate
erstellt man i.d.R. nur *einmal*. Dann kopiert man die Client-Files
(Zertifikat und Key) und das CA-Zertifikat auf die Clients und gut ist.

> Die Zertifikate wurden nach folgender Anleitung erstellt:
> http://dev.mysql.com/doc/refman/5.0/en/secure-create-certs.h tml
> Ebenfalls beachtet wurde der -day 365 Schalter. Wie gesagt, daß
> Problem tritt nur beim TCP Connect übers Netzwerk auf, nicht wenn der
> lokale Client sich auf den lokalen Server connectet.

Mit local/nichtlocal hat das wenig zu tun. Die Zertifikate müssen halt
zueinander passen.


XL

Re: MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 05.09.2006 11:49:11 von christoph.klempau

Hallo!

Axel Schwenke schrieb:

> Erste dumme Zwischenfrage: warum willst du das verschlüsseln? Sind
> deine Webserver mit der Datenbank über ein derart unsicheres Netz
> verbunden? Ist dir bewußt, daß SSL ordentlich CPU-Leistung frißt?

Ja, sind eigentlich auch nur ein paar INSERTS, nicht viel, aber "sicher
ist sicher" ;). Die Server stehen schon im gleichen Subnet am gleichen
Switch, aber Klartext-PWs im öffentlichen Netz müssen halt nicht
sein.

> An diesem Satz stört mich das Wörtchen "wieder". Den Satz Zertifikate
> erstellt man i.d.R. nur *einmal*. Dann kopiert man die Client-Files
> (Zertifikat und Key) und das CA-Zertifikat auf die Clients und gut ist.

Mit "wieder" meinte ich, daß ich die Zertifikate 2-3x erstellt habe,
um sicherzustellen, daß sie nicht abgelaufen oder in irgendeiner Form
ungültig / defekt sind.

> Mit local/nichtlocal hat das wenig zu tun. Die Zertifikate müssen halt
> zueinander passen.

Ich glaube, du hast mir eben den entscheidenden Hinweis gegeben.
Nochmal für dumme.
Ich habe den DB Server und drei Clients. Welche Zertifikate kopiere ich
wohin? Auf welchem der vier Maschinen werden sie erstellt und auf
welchen der Maschinen kopiert?

Danke & VG

Christoph Klempau

Re: MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 05.09.2006 11:52:03 von Christian Kirsch

christoph.klempau@gmail.com schrieb:
> Hallo!
>
> Axel Schwenke schrieb:
>
>> Erste dumme Zwischenfrage: warum willst du das verschlüsseln? Sind
>> deine Webserver mit der Datenbank über ein derart unsicheres Netz
>> verbunden? Ist dir bewußt, daß SSL ordentlich CPU-Leistung frißt?
>
> Ja, sind eigentlich auch nur ein paar INSERTS, nicht viel, aber "sicher
> ist sicher" ;). Die Server stehen schon im gleichen Subnet am gleichen
> Switch, aber Klartext-PWs im öffentlichen Netz müssen halt nicht
> sein.
>

Sind auch nicht, AFAIK. MySQL schickt wohl die Passwörter schon seit
einiger Zeit als Hash übers Netz.

Re: MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 05.09.2006 12:06:10 von Christian Kirsch

christoph.klempau@gmail.com schrieb:
> Hallo!
>
> Axel Schwenke schrieb:
>
>> Erste dumme Zwischenfrage: warum willst du das verschlüsseln? Sind
>> deine Webserver mit der Datenbank über ein derart unsicheres Netz
>> verbunden? Ist dir bewußt, daß SSL ordentlich CPU-Leistung frißt?
>
> Ja, sind eigentlich auch nur ein paar INSERTS, nicht viel, aber "sicher
> ist sicher" ;). Die Server stehen schon im gleichen Subnet am gleichen
> Switch, aber Klartext-PWs im öffentlichen Netz müssen halt nicht
> sein.
>

Guck' Dir doch einfach mal mit ethereal an, *was* übers Netz geht. Bei
einer MySQL-Version, die SSL beherrscht, sind das jedenfalls keine
Klartext-Passwörter:

00 0f ea 7b a5 c5 00 e0 18 a6 ff 3f 08 00 45 08 ...{.... ...?..E.
00 75 c2 dc 40 00 40 06 ab f0 ac 10 02 8a 0a 0a .u..@.@. ........
13 0a 85 e3 0c ea 1a 43 c7 19 b0 3d 3e c9 80 18 .......C ...=>...
05 50 68 0f 00 00 01 01 08 0a 00 2e 06 f8 e9 1d .Ph..... ........
4d 81 3d 00 00 01 0d a6 03 00 00 00 00 01 08 00 M.=..... ........
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
00 00 00 00 00 00 63 6b 00 18 a3 a8 d7 71 96 ff ......ck .....q..
55 e5 b8 70 1e af e1 99 e4 40 a7 e3 78 a0 69 78 U..p.... .@..x.ix
64 62 00

Vielleicht versuchst Du ein Problem zu lösen, das gar nicht gibt?

Re: MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 05.09.2006 12:08:40 von christoph.klempau

christoph.klempau@gmail.com schrieb:

> Mit local/nichtlocal hat das wenig zu tun. Die Zertifikate müssen halt
> > zueinander passen.
>
> Ich glaube, du hast mir eben den entscheidenden Hinweis gegeben.
> Nochmal für dumme.
> Ich habe den DB Server und drei Clients. Welche Zertifikate kopiere ich
> wohin? Auf welchem der vier Maschinen werden sie erstellt und auf
> welchen der Maschinen kopiert?

So, ich habs. Ich habe es selbst verbockt. Ich habe die Client Certs
mit unterschiedlichen cacerts gesigned und nicht mit der auf dem
Server. Kann dann ja nicht funktionieren. ;).

Danke!

Christoph Klempau

Re: MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 05.09.2006 12:17:32 von Christian Kirsch

christoph.klempau@gmail.com schrieb:
> christoph.klempau@gmail.com schrieb:
>
>> Mit local/nichtlocal hat das wenig zu tun. Die Zertifikate müssen halt
>>> zueinander passen.
>> Ich glaube, du hast mir eben den entscheidenden Hinweis gegeben.
>> Nochmal für dumme.
>> Ich habe den DB Server und drei Clients. Welche Zertifikate kopiere ich
>> wohin? Auf welchem der vier Maschinen werden sie erstellt und auf
>> welchen der Maschinen kopiert?
>
> So, ich habs. Ich habe es selbst verbockt. Ich habe die Client Certs
> mit unterschiedlichen cacerts gesigned und nicht mit der auf dem
> Server. Kann dann ja nicht funktionieren. ;).
>

Trotzdem: Du löst ein Problem ("im Klartext übertragene Passwörter"),
das es nicht gibt. Over-Engineering?

Re: MySQL 5.0.24 ERROR 2026 (HY000): SSL connection error

am 05.09.2006 14:36:12 von Axel Schwenke

christoph.klempau@gmail.com wrote:
> Axel Schwenke schrieb:
>
>> Erste dumme Zwischenfrage: warum willst du das verschlüsseln? Sind
>> deine Webserver mit der Datenbank über ein derart unsicheres Netz
>> verbunden? Ist dir bewußt, daß SSL ordentlich CPU-Leistung frißt?
>
> Ja, sind eigentlich auch nur ein paar INSERTS, nicht viel, aber "sicher
> ist sicher" ;). Die Server stehen schon im gleichen Subnet am gleichen
> Switch, aber Klartext-PWs im öffentlichen Netz müssen halt nicht
> sein.

Das MySQL-Login ist seit 4.1 cryptografisch sauber. Was Klartext ist
sind die SQL-Statements und die dazugehörigen Daten.
Wenn du Anwendungs-Paßworte in der Datenbank speicherst, solltest du
die auch besser verschlüsseln (zumindest: hashen).

>> Mit local/nichtlocal hat das wenig zu tun. Die Zertifikate müssen halt
>> zueinander passen.
>
> Ich glaube, du hast mir eben den entscheidenden Hinweis gegeben.
> Nochmal für dumme.
> Ich habe den DB Server und drei Clients. Welche Zertifikate kopiere ich
> wohin? Auf welchem der vier Maschinen werden sie erstellt und auf
> welchen der Maschinen kopiert?

Erstellen kannst du die Zertifikate wo immer du willst. Wenn du nach
der Anleitung vorgegangen bist, hast du nachher 5 Files:

cacert.pem ... das muß auf jede Maschine, die die Gültigkeit eines
Zertifikats überprüfen können muß. Es enthält das Zertifikat deiner CA,
mit dem die anderen Zertifikate beglaubigt sind.

server-{cert,key}.pem ... gehören auf den Server (eigentlich logisch).

client-{cert,key}.pem ... brauchst du nur, wenn die MySQL-Authentifi-
zierung zusätzlich das Zertifikat checken soll (dazu benutzt du GRANT
mit REQUIRE X509|ISSUER|SUBJECT). In diesem Fall muß cacert.pem auch
auf dem Server vorhanden (und in my.cnf eingetragen) sein.

Für das Minimal-Setup packst du cacert.pem auf jeden Client und trägst
es in my.cnf ein. Auf dem Server brauchst du nur server-{cert,key}.pem.


XL