Category Archives: Apache

Mehrere virtuelle SSL Hosts mit IP Aliasing

Die Virtual Host Direktive erlaubt es, den Apache Webserver für mehrere Domains (Webseiten) zu konfigurieren. Der Client nimmt über eine IP-Adresse Kontakt zum Server auf und dieser entscheidet auf Grund des Domainnamens welchen virtuellen Host er benutzen soll (Name-based Virtual Hosts).

Häufig ist es des Weiteren wünschenswert die Verbindung zwischen Cilent und Server über TLS/SSL abzusichern. Bei SSL handelt es sich um ein Layer 4 Protokoll. Die SSL Verbindung wird also ausgehandelt, bevor der Webserver einen virtuellen Host auswählt (Webserver arbeitet auf Layer 7). Ein Zertifikat pro Domain ist damit bei Name-based Virtual Hosts nicht möglich. Die verschlüsselte Verbindung kann zwar trotzdem hergestellt werden, jedoch wird der Client nicht von der Authentizität des Servers überzeugt und es erscheint dem Benutzer bei jedem Besuch die Warnmeldung, dass der angegebene Domainname im Serverzertifikat und die aufgerufene Domain nicht übereinstimmen. Für einige wenige Ausnahmefälle mag das tragbar sein, jedoch nicht wenn man vertrauenswürdige Seite betreiben will.

Click to continue reading "Mehrere virtuelle SSL Hosts mit IP Aliasing"

DeliciousTwitterFacebookLinkedInRedditSlashdotTechnorati FavoritesDiggShare
Posted in Apache, Linux | Leave a comment

Nochmal mod_rewrite

Endlich haben wir ein offizielles Zertifikat für www.lynkeus-3d.de. Nach der Anpassung des virtuellen Hosts für https (neue Zertifikatsdatei angeben) habe ich festgestellt, dass der Browser beim Laden von https://lynkeus-3d.de meldet das Zertifikat sei nicht korrekt, da auf www.lynkeus-3d.de ausgestellt. Logisch. Sinvoll wäre also, wenn die Seite weiterhin über https://lynkeus-3.de erreichbar wäre, der Webserver aber automatisch auf https://www.lynkeus-3d.de “weiterleitet”.
Man erreicht dies mit folgenden Zeilen, welche in den virtuellen Host für https eingefügt werden:

RewriteEngine   on
RewriteCond %{HTTP_HOST}   !^www\.lynkeus-3d\.de [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/(.*)         https://www.lynkeus-3d.de:%/$1 [L,R]

Diese Zeilen sind nahezu 1:1 aus dem Apache Rewrite Guide entnommen.

Unter Ubuntu müssen anschließend noch folgende Befehle ausgeführt werden:

sudo a2dissite lynkeus_ssl && sudo a2ensite lynkeus_ssl
sudo /etc/init.d/apache2 restart

wobei lynkeus_ssl der virtuelle Host für https ist.

Zum Schluss noch der Link zur Dokumentation von mod_ssl:
mod_ssl

DeliciousTwitterFacebookLinkedInRedditSlashdotTechnorati FavoritesDiggShare
Posted in Apache | Leave a comment

PKCS#10 Zertifikatsantrag mit openssl

Um z.B. beim Rechenzentrum ein Serverzertifikat für einen Webserver beantragen zu können benötigt man einen PKCS#10 Zertifikatsantrag. Dieser kann mit openssl erstellt werden:

openssl req -newkey rsa:2048 -sha1 -keyout hqe_key.pem -out hqe.pem
DeliciousTwitterFacebookLinkedInRedditSlashdotTechnorati FavoritesDiggShare
Posted in Apache, Cryptography, Linux, Security | Leave a comment

mod_ssl für Apache 2 einrichten

Eine super Anleitung wie das geht findet sich hier: Apache/modssl – Ubuntu Users Wiki. Deshalb spare ich mir hier lange Worte ;)

DeliciousTwitterFacebookLinkedInRedditSlashdotTechnorati FavoritesDiggShare
Posted in Apache | Leave a comment

Weiterleitung von HTTP nach HTTPS mit mod_rewrite

Eine der Webseiten, um die ich mich momentan kümmere, habe ich seit kurzem auf HTTPS umgestellt. Ziel ist es natürlich Anfragen über http://domain.tld nicht ins Leere laufen zu lassen, sondern im Besten Fall transparent nach https://domain.tld umzuleiten. Nach meinen Recherchen macht man das am Besten so:

  1. Anlegen zweier virtueller Hosts. Einer bearbeitet Anfragen für domain.tld auf Port 80 (HTTP), der andere auf Port 443 (HTTPS).
  2. Installation von mod_rewrite. Unter Ubuntu Linux habe ich das wie folgt gemacht. Die Anleitung sollte aber auch für andere Distributionen gültig sein:
    1. Modul aktivieren: a2enmod rewrite
    2. Neustart Apache: /etc/init.d/apache2 restart
  3. Der virtuelle Host für Port 80 wird wie folgt ergänzt:
    RewriteEngine   onhttp://httpd.apache.org/docs/2.0/misc/rewriteguide.html
    RewriteCond     %{SERVER_PORT}   !^443$
    RewriteRule     (.*)             https://%{HTTP_HOST}$1   [L]

Das wars auch schon. Alle Anfragen wie z.B. http://www.domain.tld/index.php?id=xyz werden jetzt auf https://www.domain.tld/index.php?id=xyz abgebildet.

DeliciousTwitterFacebookLinkedInRedditSlashdotTechnorati FavoritesDiggShare
Posted in Apache | Leave a comment