Lighttpd 1.4.26_2 und FreeBSD 8.1-PRE/amd64 u. FBSD 9.0-CUR/amd64 enden in network.c

Eisenfaust

Well-Known Member
Über Pfingsten habe ich einige unserer Server einem Update unterzogen, wie auch meine private Maschine (allesamt FreeBSD 8.1-PRE/amd64) sowie ein Notebook (FreeBSD 9.0-CUR/amd64). Ich habe unter 8.0/8.1 gesehen, daß OpenSSL auf eine neue version gebracht wurde, gleichzeitig aber gab es in den Ports auch einen Patch des www/lighttpd (derzeit Lighttpd 1.4.26_1).
Nach einem Update des OS sowie einiger Ports startet nun auf ALLEN Maschinen der lighttpd-Daemon nicht mehr und bricht mit der folgenden Fehlermeldung ab:

Starting lighttpd.
2010-05-30 12:22:48: (network.c.535) SSL: error:00000000:lib(0):func(0):reason(0)
/usr/local/etc/rc.d/lighttpd: WARNING: failed to start lighttpd


Schaue ich mir die Quelldatei network.c an (lighttpd-Quellen), so wird hier explizit OpenSSLv2 deaktiviert und darauf geprüft. Auf den Webseiten der Lighttpd-Entwickler heißt es, daß OpenSSLv2 mit Verwendung der Compileroption --with-openssl nicht mehr unterstützt werde, wenn die Version größer 1.41 sei. Nun verwendete ich lighttpd aber schon eine ganze Weile!

In meiner Not habe ich dann auf allen Maschinen neue Zertifikate erstellt, aber auch das brachte keinerlei Verbesserung. Weiß jemand Rat? Es gibt einige Fehlermeldungen aus vergangenen Jahren, die man ergoogeln kann, es fällt mir aber schwer, daß sich dieser Uraltfehler erneut eingeschlichen haben kann. Da auch in den Mailinglisten kaum etwas zu finden ist, liegt natürlich ein Fehler bei mir näher als ein echter Bug ...

Dank im voraus.

P.S. Ich habe übrigens via 'portmaster -vf lighttpd-1.4.26 alle zum Bau des Lighttpd notwendigen Ports erneut gebaut - was letztlich nichts geholfen hat. Auf FreeBSD 9.0 ist die Installation jungfräulich gestern durchgeführt worden, mit selbigem Ärgernis ...
 
Das Problem ist offenbar schon etwas länger bekannt (nur nicht beim Verwalter des Lighttpd-FreeBSD Ports), siehe hier: lighttpd. Einen Patch gibts auch, er sieht bei mir so aus und klappt vorzüglich:

Code:
--- src/network.c.orig  2010-05-30 12:44:54.000000000 +0000
+++ src/network.c       2010-05-30 12:46:43.000000000 +0000
@@ -531,7 +531,8 @@ int network_init(server *srv) {

                if (!s->ssl_use_sslv2) {
                        /* disable SSLv2 */
-                       if (SSL_OP_NO_SSLv2 != SSL_CTX_set_options(s->ssl_ctx, SSL_OP_NO_SSLv2)) {
+                       /* if (SSL_OP_NO_SSLv2 != SSL_CTX_set_options(s->ssl_ctx, SSL_OP_NO_SSLv2)) { */
+                       if (!(SSL_OP_NO_SSLv2 & SSL_CTX_set_options(s->ssl_ctx, SSL_OP_NO_SSLv2))) {
                                log_error_write(srv, __FILE__, __LINE__, "ss", "SSL:",
                                                ERR_error_string(ERR_get_error(), NULL));
                                return -1;
 
Zurück
Oben