Zwar ist bei Apache ein VHost dabei, der bereits die nötigen Zeilen enthält (default-ssl), doch macht es keinen Sinn, immer diese Datei zu kopieren und anzupassen, wenn man einen VHost mit SSL ziemlich einfach selbst konfigurieren kann. Los geht’s 🙂

1. Das SSL Zertifikat und den Key in ein Unterverzeichnis von /etc/apache2/ssl kopieren bzw es dort erstellen / hochladen. Ein anderer Ordner geht natürlich auch, dann aber darauf achten, den Pfad im VHost anzupassen.

2.

apt-get update && apt-get -y upgrade && apt-get -y install apache2

cd /etc/apache2/sites-available

nano [Name für neuen SSL VHost]

Nun einfach den Inhalt des Spoilers kopieren, einfügen und anpassen

Spoiler

<IfModule mod_ssl.c>

<VirtualHost _default_:443>    ### Das _default_ darf NICHT geändert werden, sonst kann es zu unschönem nicht-funktionieren kommen!

DocumentRoot /var/www ### Anpassen

ServerName example.com ### Anpassen

SSLEngine On

SSLCertificateFile /etc/apache2/ssl/ ### Anpassen, sodass der absolute Pfad zur Zertifikats-Datei ( .crt ) da steht

SSLCertificateKeyFile /etc/apache2/ssl/ ### Zum absolutem Pfad zur zugehörigen .key Datei ändern

</VirtualHost>

</IfModule>

[collapse]

3.

a2enmod ssl

service apache2 restart

a2ensite [Name des neuen SSL VHost]

service apache2 reload

4. Fertig! Schon ist die Domain nach ServerName unter httpss://[Domain] erreichbar! Wenn man möchte, dass Zugriffe auf die Domain ohne SSL zu mit weitergeleitet werden, zeige ich hierfür 2 Möglichkeiten.

4.1. Per .htaccess

Zuerst einen VHost für die Domain ohne SSL einrichten, bzw DocumentRoot im bestehenden VHost anpassen, sodass dieser zu einem anderen Pfad zeigt (z.B. /var/www/rdr2ssl). Anschließend in das DRoot Verzeichnis wechseln und folgendes ausführen:

nano .htaccess

Redirect 301 / https://[Domain]

{Strg + O, Strg + X}

{Optional, falls man einen neuen VHost erstellt hat der auf Port 80 hört} a2ensite [Name des VHost der auf :80 hört]

service apache2 reload

4.2. Per PHP (mit Path Forwarding!)

Vorbereitungen gleich wie bei 4.1. und dann

nano index.php

Folgendes einfügen und anpassen:

Spoiler

<?php
$path = $_SERVER[„REQUEST_URI“];
header(„HTTP/1.1 301 Moved Permanently“);
header(„Location: https://[Domain mit oder ohne www davor]“ . $path);
exit;
?>

[collapse]

Dies leitet zudem noch den Pfad weiter (https://123.hx/pfad/zur/datei/index.html > httpss://123.hx/pfad/zur/datei/index.html)

[HowTo] Apache VirtualHost mit SSL konfigurieren
Markiert in:                                                                                                             

Ein Gedanke zu „[HowTo] Apache VirtualHost mit SSL konfigurieren

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.