Apache-SSL

Letzte Aktualisierung: Dezember 08, 2009


WICHTIG! Bitte diese Sicherheitsnews lesen - Juni 20, 2002
WICHTIG! Bitte diese Sicherheitsnews lesen- März 1, 2002
WICHTIG! Bitte diese Sicherheitsnews lesen- Februar 6, 2004

Inhaltsverzeichnis


Main Features

Was ist Apache-SSL?

Apache-SSL ist ein gesicherter Webserver, basierend auf Apache und SSLeay/OpenSSL. Es ist unter einer BSD ähnlichen Lizenz lizensiert. Kurz um bedeutet es, dass man Apache-SSL für kommerzielle sowie nicht-kommerzielle Zwecke verwenden kann, solange man die Copyrights bewahrt. Das sind auch die gleichen Lizenzen, die man bei Apache ab Version 0.8.15. benutzt.

 

Download

Aktueller Release: apache_1.3.41+ssl_1.60
Releasedatum: 15. Januar, 2009

Es wird ebenso openssl-0.9.8a oder höher benötigt, welches man hier finden kann.

Die Apache-SSL source Patches können auf den folgenden UK Distributionsservern gefunden werden:

und zusätzlich gibt es hier FTP Mirrors:

oder HTTP Mirror:

O/S spezielle Versionen:

Was bekommt man ?

Man bekommt mehrere Patches für Apache (verfügbar für die Versionen 1.2.0+ und 1.3.0+), einige zusätzliche Quelldateien, Readme Texte sowie Bespiel-Konfigurationen. Dieses Patches müssen bei den normalen Apache Sources angelegt werden und mit SSLeay (version 0.5.1b+) oder OpenSSLcompiliert werden.Die modifizierten Sourcedateien werden weiterhin normale Apache als auch Apache-SSL compilieren.

Sei Up-to-Date

Die beste Möglichkeiten um immer Up-to-Date zu sein und keine Upgrades zu verpassen, ist es, die Mailing Liste beizutreten. Hier werden neue Versionen angekündigt.

Bug Fixes und Patches

Sende bitte alle Bugs und Wünsche für Weiterentwicklungen an ben@links.org.

Feel free to report bugs or problems to the same place, but I make no promises (unless you want to pay me).

Kommerzieller Support

Ein kommerzieller Support existiert für Apache sowie Apache-SSL. Bei Interesse kannst du direkt ben@links.org anmailen.

Digitale Zertifikate

Die folgenden Firmen haben Links zu ihren Seiten beantragt. Wir befürworten, empfehlen oder arbeiten mit keinen dieser Organisationen zusammen. Diese Firmen werden in der Liste so aufgezählt, wie sie den Antrag für die Verlinkung gestellt haben.

Digitale Zertifikate für Apache-SSL sind bei den folgenden Seiten verfügbar:

PGP Schlüssel

Wenn du mir eine private Email senden willst, kannst du einen PGP Schlüssel hier finden. Bitte benutzt es nur, wenn es notwendig ist.

FAQ

Apache-SSL wurde längere Zeit nicht mehr aktualisiert. Heißt es, dass es nicht mehr Up-to-Date ist?

Nein, es bedeutet nur, dass es funktioniert und das kann, was die Leute brauchen. Wir aktualisieren Apache-SSL nur, wenn wir Bugs finden, es eine neue Apache Version herauskommt oder neue Features gebraucht werden.

Warum hängt mein Browser, wenn ich zu Apache-SSL connecte?

Weil du höchstwahrscheinlich http: anstatt von https:.benutzt.

Und wenn du folgende Zeile in einer "error log" siehst:

SSL_Accept failed error:140760EB:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
Es wird der gleiche Fehler sein!

Die Patches werden nicht übernommen. Was ist das Problem?

Wenn du folgendes bekommst:

$ patch < SSLpatch
  Looks like a new-style context diff.
File to patch:

und nicht viel mehr, dann wirst du wahrscheinlich eine alte Version von patch haben. Such dir am besten die Version 2.1 ode höher und versuch es nochmals. Oder du hast eine "verbesserte" Version von patch (zum Beispiel 2.5) in der man "patch -p1 < SSLpatch" verwenden sollte.

Ich weiß, dass HTTP auf dem Port 80 ist, aber wo ist HTTPS?

Man kann HTTPS auf jedem beliebigen Port laufen lassen, jedoch ist der Standard Port 443, in dem auch jeder normale Browser zuerst nachschaut. Man kann jedoch den Browser auch zwingen, auf einen anderen Port zuzugreifen:

https://secure.server.hell:666

Ich würde gerne einen sicheren und nicht-sicheren Server auf meiner Maschine laufen lassen. Ist das möglich?

Es gibt dafür zwei Möglichkeiten: Man lässt zwei Server Daemons laufen oder beide Services laufen auf dem gleichen Daemon. Es gibt jedoch einen guten Grund um zwei Daemons laufen zu lassen: Es ist in der Regel der einfachste Weg einen einzelnen Daemon laufen zu lassen und die SSL Verbindung für die Virtuellen Hosts zu deaktivieren, die es nicht benötigen. Wenn man sich dafür entscheidet, zwei Daemons zu starten, muss man sicher gehen, dass jeder Daemon nur versucht auf den eingestellten Port zuzugreifen (in der Regel Port 80 für nicht-gesichert und Port 443 für gesichert). Wenn man einen einzelnen Daemon laufen lassen möchte, ist hier eine Beispiel Konfiguration, wie man es machen könnte.

Jetzt habe ich meinen eigenen Server installiert, wie kann ich ein Test-Zertifikat erstellen?

Schritt 1 - erstelle den Schlüssel und Request:

  openssl req -new > new.cert.csr
Schritt 2 - entferne die Passphrase vom Schlüssel (optional):

  openssl rsa -in privkey.pem -out new.cert.key
Schritt 3 - kovertiere den Request in einen signiert cert um:

   openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365
Die Apache-SSL Direktiven, die man für die resultierenden cert haben muss:

  SSLCertificateFile /path/to/certs/new.cert.cert
  SSLCertificateKeyFile /path/to/certs/new.cert.key

Wie erstelle ich ein Client Zertifikat?

Schritt 1 - Erstelle ein CA Zertifikat /Schlüsselpaar wie oben beschrieben.

Schritt 2 - signiere den Client Request mit dem CA Schlüssel:

  openssl x509 -req -in client.cert.csr -out client.cert.cert -signkey my.CA.key -CA my.CA.cert -CAkey my.CA.key -CAcreateserial -days 365
Schritt 3 - gib die Datei 'client.cert.cert' zu dem the "Anforderer" (requester).

Die Apache-SSL Direktiven die man braucht, um den cert zu validieren sind:

  SSLCACertificateFile /path/to/certs/my.CA.cert
  SSLVerifyClient 2

Wie erreiche ich einen Zugriff auf die Client certs von meinem CGI?

In dem Release apache_1.3.2+ssl_1.27 und darüber, kann man folgende Direktive verwenden:

  SSLExportClientCertificates
Das wird die wichtigen Variablen für die Inhalte des Client certs erstellen. Für weitere Details, sollte man den SSLExportClientCertificates Bereich in der Dokumentation anschauen.Es gibt dazu ein funktionierendes Beispiel auf : http://www.apache-ssl.de/cgi/cert-export.html

Wie installiere ich FrontPage98 Extensions mit Apache-SSL?

Bertrand Renuart hat detaillierte Informationen auf seiner Seite, wie das gemacht werden kann: http://www.itma.lu/howto/apache

Wenn ich ein Verisign cert installiere, wieso kann ich dann "getca" oder "getverisign" nicht finden?

Die aktuellste Version der Verisign Apache-SSL cert Befehle findet man hier: http://www.verisign.com/support/install/apache/v01.html

Wie kann ich Apache-SSL als ein mitbenutzbares Modul (DSO) laufen lassen?

Zuerst muss man den mitbenutzbaren Support in dem source tree konfigurieren:

  ./configure --enable-shared=apache_ssl
danach das Modul in den httpd.conf aktivieren:
  LoadModule apache_ssl_module modules/libssl.so

Allgemeine Compiler Fehler

  gcc -c  -I../os/unix -I../include -I/usr/local/ssl/include   -funsigned-char -DTARGET=\"httpsd\" -DAPACHE_SSL `../apaci` -DAPACHE_SSL buff.c
  buff.c: In function `ap_read':
  buff.c:259: structure has no member named `stats'
  buff.c:267: structure has no member named `stats'
  buff.c:268: structure has no member named `stats'
  buff.c:269: structure has no member named `stats'
  buff.c:271: structure has no member named `stats'
  buff.c: In function `ap_write':
  buff.c:346: warning: passing arg 2 of `SSL_write' discards `const' from pointer target type
  *** Error code 1

Bei diesen Fehlern muss man zu OpenSSL upgraden.

Allgemeine runtime Fehler

Die Fehlerausgabe:

  error:0D067007:asn1 encoding routines:ASN1_COLLATE_PRIMITIVE:expecting an asn1 sequence
  httpsd: apache_ssl.c:1313: GetSessionFromServer: Assertion `pSession' failed.
Man muss Apache-SSL upgraden. Es existierte ein Bug in der Version 1.46 bei Apache-SSL, der diesen Fehler hervorgerufen hat.

Apache gibt OK aus, aber ich bekomme Fehler , wenn ich sichere Seiten öffne

Wenn du sowas in der Art in den Error Logfiles siehst:

  [Fri Apr 28 16:24:08 2000] [error] SSL_accept failed
  [Fri Apr 28 16:24:08 2000] [error] error:24064064:random number generator:SSLEAY_RAND_BYTES:prng not seeded
  [Fri Apr 28 16:24:08 2000] [error] error:04069003:rsa routines:RSA_generate_key:BN lib
  [Fri Apr 28 16:24:08 2000] [error] error:1409B444:SSL routines:SSL3_SEND_SERVER_KEY_EXCHANGE:error generating tmp rsa key

Dann musst du einen "random number generator" hinzufügen. Das ist ein Feature von OpenSSL seit der 0.9.5a Version. Mehr dazu bei http://www.apache-ssl.org/docs.html#SSLRandomFile

Wie kann ich EGD mit Apache-SSL benutzen?

Ben Srour erklärt hier wie man es auf einem Mac OS/X macht. Diese Beschreibung sollte nahezu gleich für andere Unix Varianten gelten.

Mailing Lists

Es gibt zwei Apache-SSL Mailing Lists. Für Support und allgemeine Fragen kann die Apache-SSL Community helfen - dazu sollte man eine leere Email an apache-ssl-help@lists.aldigital.co.uk senden. Das ist meist der einfachste Weg allgemeine Fragen schnell beantwortet zu bekommen. Ansonsten muss man immer VOR der Fragestellung im Archiv schauen, ob es die Frage bzw. das Problem schon eventuell existiert.

Wenn du einfach immer Up-to-Date sein willst und die keine neue Version verpassen möchtest, kannst du dich in der apache-sslannounce-help@lists.aldigital.co.uk Mailing List eintragen.

Apache-SSL ist nicht mod_ssl

Es existieren einige Irritationen zwischen den Modulen Apache-SSL und mod_ssl. Um es klarzustellen: mod_ssl ist keine Ablösung für Apache-SSL - es ist lediglich eine Alternative, wie Apache auch eine Alternative zu Netscape/Microsoft Server, oder Linux eine Alternative zu den FreeBSD System gewesen ist. Es ist eine persönliche Entscheidung, welches man auswählt. Mod_ssl wurde ursprünglich von Apache-SSL entwickelt, wobei dieser Code durch die unterschiedliche Entwicklung mittlerweile sehr unterschiedlich ist.

Zitat: " Apache-SSL continues to be developed and maintained, our main focus being on reliability, security and performance, rather than features and bells and whistles." (Adam Laurie).

Links

Weitere relevante Webseiten:

Mirror Webseiten

 

Referenzen

Interessante Webseiten die Apache-SSL verwenden:

 

Danke

Apache-SSL wurde von Ben Laurie geschrieben, welcher ebenfalls ein Apache Core-Team und Board-Mitglied, sowie auch OpenSSL Core-Team Mitglied ist.
Die Entwicklung von Apache-SSL wird von A.L. Digital Ltd. gesponsort und die offizielle Apache-SSL.org Seite wird von The Bunker gehostet.
Informationen bezüglich FTP Mirror Seiten, CAs, Links und weiteren Dingen, sollten direkt an Ben geschickt werden: The Web Slaves


Die Grafiken von Apache-SSL sind mit freundlicher Genehmigung von Jamie Harrison und The WoW Foundation, basierend auf der Original Feder von Randy Terbush erstellt. Die animierten Animated graphic by Katherine Cleave of A.L. Digital. Minibutton by King Monty. Feel free to replicate.



Team A.L. Digital && Apache-SSL Distributed Computing

A.L. Digital Ltd. participate in the Distributed Net encryption cracking efforts, as do many of our friends. To see how our team is doing, click the team logo above. To read more about the project, click on the banner above. To join our team, affiliate yourself with team no. 5209. For your personal privacy, the team membership listing is not open to the public, and we promise not to use it ourselves. For anything.



Copyright © 1995 -2009 Ben Laurie, Adam Laurie.