Selbstausgesteltes Zertifikat für Apache
Verfasst: Sa 22. Dez 2018, 08:51
Wer entweder temporär wie ich für einen Serverumzug ein Zertifikat für die SSL Verschlüsselung des Apache benötigt oder keine Domäne besitzt um Let's Encrypt nutzen zu können, der kann jederzeit mit nachfolgenden Befehlen ein sicheres Zertifikat ausstellen, was 365 Tage gültig ist.
Alternativ kann man natürlich die Gültigkeitzeit erhöhen. Hierbei beachten, dass wenn das Zertifikat entwendet wurde, dass die Gültigkeit dann etwas hinderlich ist
Um nun Apache nun dazu zu verdonnern https zu machen, muss erst mal das entsprechende Modul wie folgt aktiviert werden:
Um gleich auch noch die Vorbereitung zu treffen, dass Apache immer zwingend auf die verschlüsselte Verbindung wechselt haben wir in dem Befehl auch direkt das Modul rewrite aktiviert.
Nun muss noch Apache beigebracht werden was zutun ist. Hierzu eine Apche-Beispielkonfiguration für eine Website (/etc/apache2/sites-available/<datei>.conf):
Sollte die Domäne fehlen, kann selbstverständlich einfach der Servername weggelassen werden.
Sollte oben eine neue Konfigdatei angelegt worden sein (Empfehlenswert pro Seite eine eigene Datei anzulegen), dann muss diese erst noch im Apache aktiviert werden:
Hierbei einfach mit Tab arbeiten. Der Pfad wird nicht mit angegeben!
Nun muss Apache einmal durchgestartet werden:
Code: Alles auswählen
openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.csr -sha256
openssl req -noout -text -in server.csr #Check Certificat
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Um nun Apache nun dazu zu verdonnern https zu machen, muss erst mal das entsprechende Modul wie folgt aktiviert werden:
Code: Alles auswählen
a2enmod ssl rewrite
Nun muss noch Apache beigebracht werden was zutun ist. Hierzu eine Apche-Beispielkonfiguration für eine Website (/etc/apache2/sites-available/<datei>.conf):
Code: Alles auswählen
<VirtualHost *:80>
ServerName domainname.de
DocumentRoot "<pathToHtmlRoot>"
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName domainname.de
DocumentRoot "<pathToHtmlRoot>"
SSLEngine on
SSLCertificateFile <Path>/server.crt
SSLCertificateChainFile <Path>/server.csr
SSLCertificateKeyFile <Path>/server.key
</VirtualHost>
</IfModule>
Sollte oben eine neue Konfigdatei angelegt worden sein (Empfehlenswert pro Seite eine eigene Datei anzulegen), dann muss diese erst noch im Apache aktiviert werden:
Code: Alles auswählen
a2ensite <Datei>.conf
Nun muss Apache einmal durchgestartet werden:
Code: Alles auswählen
service apache2 restart