Xampp mit mehreren VirtualHosts - Problem mit SSL

Irgendwelche Probleme mit XAMPP für Linux? Dann ist hier genau der richtige Ort um nachzufragen.

Xampp mit mehreren VirtualHosts - Problem mit SSL

Postby nanetnana » 25. July 2005 08:31

hallo leute!

ich habe einen server mit xampp, bind und sendmail installiert. ich habe auf dem server von meinem provider mehrere ips zur verfügung. der "normale" webserver (http auf port 80) mit mehreren virtual hosts funktioniert einwandfrei.
jetzt wollte ich mal einen virtual host mit ssl betreiben, habe jedoch bei der konfiguration des apachen meine schwierigkeiten.
auf der thawte.com homepage habe ich eine beschreibung gefunden wie ich ein zertifikat erstellen kann:
* openssl genrsa -des3 1024 > www.domain.tld.key
* openssl req -new -key ../private/www.domain.tld.key > www.domain.tld.csr
* openssl req -x509 -key ../private/www.domain.tld.key -in www.domain.tld.csr > www.domain.tld.crt
danach habe ich bei thawte ein testzertifikat angefordert und erhalten.
das erhaltene zertifikat habe ich unter /opt/lampp/etc/ssl.crt/www.domain.at.crt abgelegt. meinen private key habe ich unter /opt/lampp/etc/ssl.key/www.domain.at.key
abgelegt.

nun ging es daran den apachen zu konfigurieren - ich habe folgende zeilen in die konfiguration eingefügt:

###########################################
### virtual hosts ###############################
###########################################

NameVirtualHost xxx.xxx.xxx.228
NameVirtualHost xxx.xxx.xxx.228:443

<VirtualHost xxx.xxx.xxx.228>
ServerName domain.at
ServerAlias www.domain.at
DocumentRoot /home/domain_at/www
ErrorLog /var/log/apache/domain_at.error_log
CustomLog /var/log/apache/domain_at.access_log combined
</VirtualHost>

<IfDefine SSL>

<VirtualHost domain.at:443>
DocumentRoot /home/domain_at/www
ServerName domain.at:443
ServerAdmin webmaster@domain.at
ErrorLog /var/log/apache/domain_at.error_log
TransferLog /var/log/apache/domain_at.transfer_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /opt/lampp/etc/ssl.crt/www.domain.at.crt
SSLCertificateKeyFile /opt/lampp/etc/ssl.key/www.domain.at.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/home/domain_at/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

</IfDefine>

###########################


nach dem neustart des xampp apachen beendet er den startvorgang nicht - ich muss händisch den prozess killen - danach schreibt er mir dass er den apachen nicht starten konnte.

könnte mir jemand einen tipp geben worin der fehler in meiner konfiguration besteht?

vielen dank im voraus!

ciao
markus
nanetnana
 
Posts: 6
Joined: 23. July 2005 18:06

Postby Oswald » 25. July 2005 09:11

Hallo Markus!

1) Das erste was mir einfällt: In der ssl.conf wird ebenfalls ein Virtual Host konfiguriert. Kommentiere diesen dort aus oder lösch ihn ganz. Es kann gut sein, dass sich die beiden Virtual Hosts in die Quere kommen.

2) Ein NameVirtualHost funktioniert nicht bei SSL, da die Kommunikation alleine über die IP-Adresse statt findet und verschlüsselt ist. D. h. die Zeile mit NameVirtualHost ...:443 macht keinen Sinn.

3) Bei <Virtual Host ...:443> eine IP-Adresse schreiben. Eigentlich dürfte es egal sein, aber ich bin mir nicht sicher ob es vielleicht doch Probleme bereitet.

Liebe Grüße
Oswald
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby nanetnana » 25. July 2005 11:01

servus!

danke für die schnelle antwort!

habe folgendes gemacht:
* das laden der ssl.conf in der httpd.conf auskommentiert
* den eintrag NameVirtualHost ...:443 entfernt
* den virtualhost eintrag habe ich wie folgt geändert:
<VirtualHost xxx.xxx.xxx.228:443>
ServerName domain.at
...
</VirtualHost>


beim neustarten von xampp bleibt er beim starten von apache hängen - mit ctrl-c breche ich den vorgang ab und bekomme folgende fehlermeldung:
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Error 1! Couldn't start Apache!
XAMPP: Starting diagnose...
XAMPP: Sorry, I've no idea what's going wrong.
XAMPP: Please contact our forum http://community.apachefriends.org/f/
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for Linux started.

... hab dann etwas anderes probiert:
habe die originalen server.key und server.crt files genommen - sieheda, es funktioniert, der server startet wieder ganz normal! => da passt etwas mit meinem zertifikat nicht!

habe aber noch ein problem:
komme mit lynx nicht auf die seite wenn ich https://www.domain.at eingebe!
nanetnana
 
Posts: 6
Joined: 23. July 2005 18:06

Postby Oswald » 25. July 2005 11:11

Hallo Markus!

nanetnana wrote:* das laden der ssl.conf in der httpd.conf auskommentiert


Bedenke, dass Du damit auch die Grundkonfiguration von SSL entfernt hast. Das wird so definitiv nicht funktionieren.

XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Error 1! Couldn't start Apache!


Schau einfach in die /opt/lampp/logs/error_log für Fehlermeldungen.

habe die originalen server.key und server.crt files genommen - sieheda, es funktioniert, der server startet wieder ganz normal! => da passt etwas mit meinem zertifikat nicht!


Ahh.. Das hätte ich nicht gedacht. Auch dazu sollte dann in der error_log genaueres zu finden sein.

habe aber noch ein problem:
komme mit lynx nicht auf die seite wenn ich https://www.domain.at eingebe!


Lynx ist sehr sensibel wenn das Zertifikat nicht mit der URL übereinstimmt. Ich denke mal das es in diesem Fall das Problem ist. Oder hast Du eine Fehlermeldung, die etwas anderes vermuten läßt?

Liebe Grüße
Oswald
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby Wiedmann » 25. July 2005 11:55

Hallo Ihrs,

Kai 'Oswald' Seidler wrote:
nanetnana wrote:* das laden der ssl.conf in der httpd.conf auskommentiert

Bedenke, dass Du damit auch die Grundkonfiguration von SSL entfernt hast. Das wird so definitiv nicht funktionieren.

IMHO hätte ich für die ersten Tests auch nichts in der "httpd.conf/ssl.conf" geändert. Einfach in der "ssl.conf" die zwei Einträge für die Zert-Namen geändert, und gut. Wenn dir dann "/htdocs/" als DocumentRoot nicht passt, kann man das ja immer noch ändern.

nanetnana wrote:habe die originalen server.key und server.crt files genommen - sieheda, es funktioniert, der server startet wieder ganz normal! => da passt etwas mit meinem zertifikat nicht!

Hm, ich kenn jetzt zwar die Testzertifikate von Thawte nicht. Aber wenn die genauso aufgebaut sind wie die regulären, dann erwartet der Apache beim Start jetzt von dir die Eingabe der Passphrase, was aber im Lampp-Script evtl. nicht vorgesehen ist (Kai?).

Anonsten wie Kai schrieb. Das error_log ist immer aufschlussreich. (gab es da nicht auch noch ein apachestart.log o.ä.?)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Oswald » 25. July 2005 12:15

Wiedmann wrote:Hm, ich kenn jetzt zwar die Testzertifikate von Thawte nicht. Aber wenn die genauso aufgebaut sind wie die regulären, dann erwartet der Apache beim Start jetzt von dir die Eingabe der Passphrase,


Genau genommen hängt das nicht vom Zertifikat, sondern vom Schlüssel, ab. Ich denke nicht, dass es überhaupt möglich ist, ein Zertifikat mit einer pass phrase zu sichern.

was aber im Lampp-Script evtl. nicht vorgesehen ist (Kai?).


Ist vorgesehen. Bzw. muss nicht explizit vom Startskript behandelt werden. Mach alles der Apache...

Liebe Grüße
Oswald
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
Operating System: Linux

Postby Wiedmann » 25. July 2005 12:33

Genau genommen hängt das nicht vom Zertifikat, sondern vom Schlüssel, ab. Ich denke nicht, dass es überhaupt möglich ist, ein Zertifikat mit einer pass phrase zu sichern.

Stimmt. In seinem Beispiel oben hat er halt einen Schlüssel mit PEM pass phrase erzeugt, weshalb der Apache beim Start danach fragen sollte. (Er könnte diesen ja aber im nachhinein wieder entfernen)

Ist vorgesehen. Bzw. muss nicht explizit vom Startskript behandelt werden. Mach alles der Apache...

Stimmt, der frägt automatisch danach. Hab jetzt nur nicht in das Script reingeschaut, deshalb war ich mir nicht sicher ob die Ausgaben vom Apache nicht evtl. umgeleitet werden.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby nanetnana » 25. July 2005 12:56

hey leute, ihr seit spitze!

habe die ssl.conf in der httpd.conf wieder aktiviert, den apachen neu gestartet => jetzt funktioniert es! (mit dem server zertifikat)

... ich werde mich nochmals bei thawte schlau machen, da habe ich wohl bei der erstellung des zertifikates irgendetwas falsch gemacht.

vielen dank nochmals!

ciao
markus
nanetnana
 
Posts: 6
Joined: 23. July 2005 18:06

Postby nanetnana » 23. August 2005 14:07

hallo leute!

habe mein ssl problem noch immer nicht wirklich gelöst!
zum test habe ich meinen virtualhost mit den mitgelieferten serverzertifikaten laufen lassen:
SSLCertificateFile /opt/lampp/etc/ssl.crt/server.crt
SSLCertificateKeyFile /opt/lampp/etc/ssl.key/server.key
... das hat einwandfrei funktioniert.

wenn ich jedoch lt. doku von thawte einen neuen key bzw csr generiere und damit ein zertifikat beantrage, schluckt er das nicht:
openssl genrsa -des3 -out www.domain.tld.key 1024
openssl req -new -key www.domain.tld.key -out www.domain.tld.csr

apache einstellungen:
SSLCertificateFile /opt/lampp/etc/ssl.crt/www.domain.tld.crt
SSLCertificateKeyFile /opt/lampp/etc/ssl.key/www.domain.tld.key

der apache lässt sich dann nicht neu starten - folgende meldung erscheint im error logfile:
[Tue Aug 23 14:54:30 2005] [error] Init: Unable to read pass phrase [Hint: key introduced or changed before restart?]
[Tue Aug 23 14:54:30 2005] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
[Tue Aug 23 14:54:30 2005] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Tue Aug 23 14:54:30 2005] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Tue Aug 23 14:54:30 2005] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib


habt ihr eine idee worin der fehler liegt?
nanetnana
 
Posts: 6
Joined: 23. July 2005 18:06

Postby Wiedmann » 23. August 2005 15:14

[Tue Aug 23 14:54:30 2005] [error] Init: Unable to read pass phrase [Hint: key introduced or changed before restart?]

Ich sag doch, dass man die beim Serverstart eingeben muss (ist jedenfalls bei mir auch so...). Kai, funktioniert das wirklich mit deinem LAMPP-Script?

Alternativ könnte man den Apache aber auch so konfigurieren, dass er die Passphrase von einem Shell-Script annimmt ("SSLPassPhraseDialog exec:foo"), wo sie einfach per echo nach stdout ausgegegeben wird.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby nanetnana » 23. August 2005 16:51

tja, aber wo gebe ich diese pass phrase ein?
nanetnana
 
Posts: 6
Joined: 23. July 2005 18:06

Postby nanetnana » 26. August 2005 15:16

ich habe jetzt mal die pass-phrase aus dem private key entfernt - jetzt funktioniet der https zugriff auf die site.

$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
nanetnana
 
Posts: 6
Joined: 23. July 2005 18:06

Postby yguru » 05. September 2005 02:39

nanetnana wrote:tja, aber wo gebe ich diese pass phrase ein?


Wenn Apache2 mit SSL und verschlüsseltem Private Key gestartet wird, wartet der Server beim Start (also nach Aufruf von //opt/lampp/lampp start) ewiglich auf die Eingabe des Kennworts - bis man dies mit ENTER bestätigt. Es erfolgt keine Bildschirmausgabe, weder daß man das Kennwort eingeben soll noch das Kennwort selbst. Also "hängt" Apache scheinbar nach dem Start wenn man nix eingibt.
User avatar
yguru
 
Posts: 32
Joined: 23. March 2005 01:47


Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 1 guest