SSL oder StartSSL

loisl

Registered User
Sooo, ich stehe gerade vor einem Problem mit ssl-Zertifikaten!

Betriegbsystem: DEBIAL lenny
mit ispCP

Der Server läuft unter der IP **.***.***.4
Die HP xyz.eu unter der IP **.***.***.20

nun soll die HP unter http://www.xyz.eu und https://www.xyz.eu
erreichbar sein

Ich habe bei startSSL ein Zertifikat generiert und habe nun
die beiden Dateien ssl.crt + ssl.key nach /etc/apache2/ssl/

?????
so nun muss ich noch unter /etc/apache2/sites-available
eine neue Datei z.B. 02_ssl_master.conf erstellen?

Was soll da nun alles rein???

Besten Dank schon mal und
liebe Grüsse
loisl
 
Wenn Du in der komfortablen Situation bist, zwei IPs zu haben, kannst Du natürlich auch zwei Zertifikate (eins für den Server und eins für die HP) verwenden. Ich würde dann zwei SSL-Hosts anlegen und das StartSSL-Zertifikat nur an die HP binden.

<VirtualHost **.***.***.20:443>
DocumentRoot /home/httpd/www.xyz.eu
SSLCertificateFile /usr/local/apache/conf/xyzeu.crt

<VirtualHost **.***.***.4:443>
DocumentRoot /home/httpd/default
SSLCertificateFile /usr/local/apache/conf/default.crt
 
Wenn Du in der komfortablen Situation bist, zwei IPs zu haben, kannst Du natürlich auch zwei Zertifikate (eins für den Server und eins für die HP) verwenden. Ich würde dann zwei SSL-Hosts anlegen und das StartSSL-Zertifikat nur an die HP binden.

Ich habe noch ein paar mehr Server und IPs ... wenn mal der einfache Weg läuft, werde ich ein Wild Card Zertifikat holen!

Ich habe mal die angepassten Einstellungen von StartSSL übernommen,aber irgend was hab ich da noch vergessen????

# nano /etc/apache2/sites-enabled/02_ssl_master.conf
Mit folgendem Inhalt:
Code:
<VirtualHost **.***.***.20:443>
   DocumentRoot /var/www/virtual/xyz.eu/htdocs
   ErrorLog /var/log/apache2/users/ssl.xyz.eu-error.log
   TransferLog /var/log/apache2/users/ssl.xyz.eu-access.log
   SSLEngine on
   SSLProtocol all -SSLv2
   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM

   SSLCertificateFile /etc/ssl/ssl.crt
   SSLCertificateKeyFile /etc/ssl/ssl.key
##   SSLCertificateChainFile /usr/local/apache/conf/sub.class1.server.ca.pem
##   SSLCACertificateFile /usr/local/apache/conf/ca.pem
   SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
   CustomLog /usr/local/apache/logs/ssl_request_log \
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

Die SSLCertificateChainFile + SSLCACertificateFilehabe ich kommentiert, da ich keine *.pem habe!

# a2ensite 02_ssl_master.conf

# /etc/init.d/apache2 restart
Restarting web server: apache2Syntax error on line 9 of /etc/apache2/sites-enabled/02_ssl_master.conf:
Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
failed!

Schon mal Vielen Dank für all eure Hilfe
Liebe Grüsse
loisl
 
Last edited by a moderator:
Die Fehlermeldung klingt so, als wäre das SSL-Modul überhaupt nicht aktiviert. Das geht (als root) mit:
Code:
a2enmod ssl

Bezüglich der Zertifikate steht doch im von [Post=242863]Thorashh[/Post] verlinkten Dokument deutlich
Download the ca.pem and sub.class1.server.ca.pem for the above configuration.
Make sure to change the path according to your apache installation.

Und auch der Grund ist hier angegeben:

Für die "billigen" Zertifikate ist das Ausstellerzertifikat in den gängigen Browsern nicht enthalten (würde Geld bzw. Auditaufwand kosten), sondern nur ein Zwischenzertifikat, welches seinerseits mit dem (im Browser vorinstallierten) Root-Zertifikat signiert ist.

Damit der Browser es prüfen und die Vertrauenskette nachvollziehen kann, muß er es aber natürlich bekommen - in diesem Fall vom Webserver.
 
Moin
Die SSLCertificateChainFile + SSLCACertificateFilehabe ich kommentiert, da ich keine *.pem habe!
Und wie soll dann bei Dir SSL funktionieren?

Du musst dich schon an die Anleitung halten.
 
Danke schon mal, auch für dei extra Erklärung ...
... verstehen ist immer besser!

Code:
# /etc/init.d/apache2 restart
Restarting web server: apache2[Thu Apr 08 01:00:15 2010] [warn] module ssl_module is already loaded, skipping
[Thu Apr 08 01:00:15 2010] [warn] VirtualHost **.***.***.20:443 overlaps with VirtualHost **.***.***.20:443, the first has precedence, perhaps you need a NameVirtualHost directive
[Thu Apr 08 01:00:15 2010] [warn] module ssl_module is already loaded, skipping
[Thu Apr 08 01:00:15 2010] [warn] VirtualHost **.***.***.20:443 overlaps with VirtualHost **.***.***.20:443, the first has precedence, perhaps you need a NameVirtualHost directive
(98)Address already in use: make_sock: could not bind to address [::]:443
 failed!

Beste Grüsse
loisl
 
Bei SSL-Verschlüsselung kannst du nicht mit Namebased Virtual Hosts arbeiten*. Daher brauchst du pro SSL-Host eine eigene IP-Adresse oder ein Zertifikat, das dann mehrere Hostnamen eingetragen hat (oft die Domain und eine oder mehere Subdomains).

*) OK, per SNI gäbe es eine Möglichkeit, aber die ist bei den Browsern noch kaum verbreitet und daher noch nicht alltagstauglich.
 
Du hast es eigentlich schon richtig verstanden.

Die Fehlermeldung sieht eher danach aus, als ob die Konfiguration zweimal eingebunden wird.
Entweder es gibt wirklich zwei Dateien oder zwei Include-Anweisungen für dieselbe Config in der Master-Conf.
Meist ist es bei Apache so gelöst daß man "include /etc/apache2/sites-enabled/*.conf" oder so hat.

Was auch sein kann ist, daß die vorhergehende Apache-Instanz garnicht beendet war oder im Hiintergrund von irgendeinem Watchdog gleich wieder gestartet wurde.

Es darf pro IP wirklich nur einen xxx:443 - Vhost geben (SNI und so mal außen vor) - am besten auch keinen zusätzlichen _default:443.
 
Also das mit der IP ist ka kein Problem, da habe ich ja zum Glück keinen mangel!

Als dann kommt in die /etc/apache2/sites-enabled/02_ssl_master.conf
unter <VirtualHost **.***.***.60:443> einfach eine neue IP! RICHTIG?
Aber der "DocumentRoot /var/www/virtual/xyz.eu/htdocs" darf dann schon auf das gleiche Verzeichnis zeigen wo auch der http:// ist???

Grüsse loisl

weitere Ideen:
Aber so gans kann das dann ja gar nicht gehn, auf der IP **.***.***.60 zeigen ja die Nameserver noch gar nirgens hin?
oder soll in die <VirtualHost _default_:443> eingetragen sein und nicht "_default_" durch die IP ersetzt werden???
 
Last edited by a moderator:
Wie viele VirtualHost-Einträge hast du für Port 443? Es darf nur einer pro IP sein.
Der Document-Root kann mit dem für die unverschlüsselte Webseite identisch sein, daß ist kein Problem. Muß es ja sogar, wenn über beide Wege der gleiche Inhalt kommen soll.
 
überhaut noch keinen bzw.
soll für die IP **.***.***.20 der erste und derzeit einzige sein.

Grüsse loisl
 
Mach' mal bitte
Code:
grep -r 443 /etc/apache2/
grep -ri Include /etc/apache2/

Das Ergebnis kannst Du gerne wieder anonymisieren, man sollte jedoch irgendwie erkennen, ob ein String bzw. eine IP mehrfach auftaucht.
Zudem kannst Du schonmal schauen, ob die gefundenen Zeilen wirklich geladen oder z.B. durch ein umschließendes <IfDefine xxx> ausgeschlossen werden.
 
OK ... Danke euch schon mal,
das hat mit sicherheit der reboot behoben, da waren noch welche Reste von Versuchen vorhanden!

Jetzt ist /etc/init.d/apache2 reload ohne Fehler gestartetund die Seite ist auch unter http://www.xyz.eu/ erreichbar.

grep -r 443 /etc/apache2/
Code:
/etc/apache2/ports.conf:    Listen 443
/etc/apache2/sites-enabled/02_ssl_master.conf:<VirtualHost xx.xxx.xxx.20:443>
/etc/apache2/sites-available/default-ssl:<VirtualHost _default_:443>
/etc/apache2/sites-available/02_ssl_master.conf:<VirtualHost xx.xxx.xxx.20:443>


Nur https://www.xyz.eu/ bekomme ich einen Error 500
die log dazu:
Code:
[...]
[Fri Apr 09 14:58:52 2010] [error] [client xx.xxx.xxx.131] Premature end of script headers: index.php
[Fri Apr 09 15:09:41 2010] [warn] RSA server certificate CommonName (CN) `www.xyz.eu' does NOT match server name!?
[Fri Apr 09 15:09:41 2010] [warn] RSA server certificate CommonName (CN) `www.xyz.eu' does NOT match server name!?
[Fri Apr 09 15:16:57 2010] [warn] (104)Connection reset by peer: mod_fcgid: read data from fastcgi server error.
[Fri Apr 09 15:16:57 2010] [error] [client xx.xxx.xxx.131] Premature end of script headers: index.php

Beste Grüsse
loisl
 
Back
Top