Linux - Server - SSL in Apache
In diesem Tutorial möchte ich erklären, wie man sich ein eigenes SSL- Zertifikat generiert und dieses anschließend in den Apache - Webserver einbaut. Zuerst aktivieren wir einmal SSL und restarten Apache. Dies wird mit folgenden Commands erledigt:
sudo a2enmod ssl
sudo service apache2 restart
Anschließend erstellen wir in unserem Apache - Verzeichnis einen neuen Ordner, in dem wir anschließend die SSL- Zertifikate ablegen.
sudo mkdir /etc/apache2/ssl
Nun erstellen wir uns unser neues Zertifikat. Hierbei sollte beachtet werden, dass Zertifikate- Selbergenerieren für größere Websiten ungeeignet ist, da der Browser eine Warnung anzeigen wird, da er das Wurzelzertifikat nicht kennt, obwohl unser Zertifikat genauso sicher sein kann. Für diese ist zu empfehlen ein Zertifikat bei einer Zertifizierungsstelle zu erwerben. Für private, oder etwa für interne Mitgliederseiten ist dies allerdings völlig in Ordnung, sofern man vor dem Besuch der mit SSL- verschlüsselten Seite eine entsprechende Warnung o.ä. ausgibt. Aber nun zu unserem Zertifikat. Dies generieren wir folgendermaßen:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Das ganze ist ab jetzt für 1 Jahr gültig, danach muss das alte gelöscht und einfach mit obigem Command neu generiert werden.
Nach der ausführung des Commands werden wir nach einigen Daten gefragt, die wir nicht zwingend eingeben müssen. Abfrage einfach durch mehrmaliges drücken der Enter- Taste überspringen.
Nun sagen wir unserem Apache- Server, dass er das Zertifikat benutzen soll. Dazu editieren wir unsere Default- Konfiguration (Ist in den meisten Fällen sinnvoll, möglich ist es aber auch das ganze nur auf bestimmte Vhosts zu beschränken(Port 443 nicht vergessen!)). Dies erledigen wir mit folgendem Command:
nano /etc/apache2/sites-available/000-default.conf
In dieser ändern wir die erste Zeile zu :
<VirtualHost *:443>
Am Ende der Datei, allerdings vor dem
</VirtualHost>
Close- Tag, fügen wir folgende Zeilen ein:
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
Das ganze können wir in folgendem kleinen Tutorial auch noch auf PhpMyAdmin ausweiten(Folgt in den nächsten Tagen).
Nun aktivieren wir noch einmal ssl und restarten apache. Dies wird mit folgendem Command erledigt:
sudo a2ensite default
sudo service apache2 restart