Nextcloud bauen mit Jet – 64 Bit Edition #03 – Einrichtung des Webservers

Der Webserver ist der Hauptdienst, ├╝ber den die ganze Cloud funktioniert. Egal ob die Website angezeigt werden, eine Datei herauf- oder heruntergeladen werden, oder ein Termineintrag aktualisiert werden soll. Alles l├Ąuft ├╝ber den Webserver. Ich hab es sehr ausf├╝hrlich im Video erkl├Ąrt, aber es gibt doch einige Einstellungen bei denen es viel einfacher ist, nicht alles abschreiben zu m├╝ssen ­čśů

Alle Befehle in diesem Tutorial werden mit Administratorenrechten ausgef├╝hrt.
Daher bitte einmal den Befehl sudo -s ausf├╝hren, um Rootrechte zu erhalten.

Die Verschl├╝sselung

Da mir die Sicherheit eurer Nextcloud sehr wichtig ist, machen wir es in diesem Tutorial gleich richtig. Unser Webserver wird n├Ąmlich nur per HTTPS erreichbar sein.
Um das zu erreichen ben├Âtigen wir erst mal ein Zertifikat. Normalerweise w├╝rde man jetzt bei einem Server der im Internet steht ein richtiges Zertifikat von einer autorisierten Zertifikatsstelle anfordern und verwenden. Da das aber meistens Geld kostet und einen Mehraufwand bedeuten w├╝rde, stellen wir unser Zertifikat einfach selber aus. F├╝r unsere Zwecke reicht das vollkommen aus und hat keine sicherheitstechnischen Einschr├Ąnkungen. In einem sp├Ąteren Tutorial schauen wir uns aber vielleicht die Einrichtung von Lets Encrypt Zertifikaten, f├╝r ├╝ber das Internet erreichbare Clouds an.
Um das Zertifikat zu erstellen werden wir folgende Befehle absetzen (Notwendige Felder entwerder beim Standard belassen oder selber ausf├╝llen. Ein Passwort vergeben wir aber f├╝r unser Zertifikat nicht. Die Tage der G├╝tigkeit k├Ânnen gerne auch l├Ąnger gew├Ąhlt werden):

mkdir /var/cert
cd /var/cert
openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.csr -sha256
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Nun sollten sich im Ordner /var/cert drei Dateien befinden.
server.crt, server.csr und server.key

Pfade f├╝r den Webserver

Der Apache Webserver verwendet standardm├Ą├čig den Ordner /var/www/html als Verzeichnis, welches sich auf der SD Karte des Raspberrys befindet. Wir wollen das ganze etwas aufteilen indem wir ein weiteres Verzeichnis auf unserem zus├Ątzlichen Speichermedium anlegen und aus Sch├Ânheitsgr├╝nden auch nicht den Ordner „html“ weiter verwenden. Nat├╝rlich setzen wir auch noch die Verzeichnisrechte gleich richtig.

mkdir /media/festplatte/nextcloud
chown -R www-data:www-data /media/festplatte/nextcloud
mkdir /var/www/nextcloud
rm -R /var/www/html

Damit Apache ├╝berhaupt das neue Verzeichnis auf dem Speichermedium akzeptiert, begeben wir uns in die /etc/apache2/apache2.conf Datei und f├╝gen folgendes dort ein (Am geschicktesten nat├╝rlich in der N├Ąhe der anderen „Directory“ Eintr├Ągen):

<Directory /media/festplatte/nextcloud>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Aktivierung der Seite

Damit Apache wei├č was zutun ist werden wir die bestehende Konfiguration so ab├Ąndern, dass diese alle Zugriffe ├╝ber http nach https weiter leitet, im richtigen Verzeichnis nach den Nextclouddateien sucht und nat├╝rlich auch die https Seite mit unseren Zertifikaten verschl├╝sselt. Daher bearbeiten wir die /etc/apache2/sites-available/000-default.conf Datei so, dass sie ungef├Ąhr so aussieht:

<VirtualHost *:80>
	DocumentRoot /var/www/nextcloud
	<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>
		DocumentRoot /var/www/nextcloud
		SSLEngine on
		SSLCertificateFile /var/cert/server.crt
		SSLCertificateChainFile /var/cert/server.csr
		SSLCertificateKeyFile /var/cert/server.key
	</VirtualHost>
</IfModule>

Wenn wir nun alles richtig gemacht haben, k├Ânnen wir mit dem Befehl systemctl reload apache2 den Webserver dazu anweisen, die neue ge├Ąnderte Konfiguration zu laden. Wenn keine Fehler erscheinen, ist das schon mal ein gutes Zeichen. Bei Problemen ist es immer gut den Befehl apachectl configtest auszuf├╝hren, um gerade Schreibfehler schnell zu idenifizieren.

Zum testen kann einfach eine index.html Datei im Verzeichnis /var/www/nextcloud/ abgelegt werden (Bitte danach wieder l├Âschen!) und versucht werden auf den Pi per Webbrowser zuzugreifen. Wenn ihr eine Zertifikatswarnung erh├Ąllt ist das okay. Das Zertifikat best├Ątigen und schauen ob eure index.html Seite geladen wird (Sollte dazu nat├╝rlich auch was drin stehen ­čśů)

Schreibe einen Kommentar