Selbstausgesteltes Zertifikat für Apache

Antworten
Benutzeravatar
Jet0JLH
Administrator
Beiträge: 28
Registriert: So 11. Okt 2015, 21:37

Selbstausgesteltes Zertifikat für Apache

Beitrag von Jet0JLH »

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.

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
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:

Code: Alles auswählen

a2enmod ssl rewrite
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):

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 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:

Code: Alles auswählen

a2ensite <Datei>.conf
Hierbei einfach mit Tab arbeiten. Der Pfad wird nicht mit angegeben!

Nun muss Apache einmal durchgestartet werden:

Code: Alles auswählen

service apache2 restart
Antworten