Home » Nextcloud » SSL Zertifikat für Nextcloud HomeServer beantragen

SSL Zertifikat für Nextcloud HomeServer beantragen

In diesem Artikel geht es darum wie Ihr ein SSL Zertifikat für Euren Nextcloud HomeServer beantragen könnt. Habt Ihr einen HomeServer z.B mit einer Nextcloud von uns und soll dieser vom Internet erreichbar sein müssen anschliessend noch gewisse Dinge eingerichtet werden die Ich für Euch nicht einrichten kann, da ich keinen Zugriff auf Eure Domain habe. Es geht dabei um das SSL-Zertifkat welches eine verschlüsselte Verbindung über https ermöglicht. Ausserdem gibt es noch eine Sicherheitseinstellung welche gesetzt werden soll, damit die Webseite bzw die Cloud nur über https aufgerufen werden kann.

Was ist ein SSL Zertifikat

Ein SSL-Zertifikat (Secure Sockets Layer) ist ein digitales Zertifikat, das die Identität eines Webservers bestätigt und die Verschlüsselung von Daten ermöglicht, die zwischen dem Server und dem Client (z.B. ein Webbrowser) übertragen werden. Es sorgt dafür, dass die übertragenen Daten vor MitM-Angriffen (Man-in-the-Middle) geschützt sind und die Datenintegrität sowie die Vertraulichkeit während der Übertragung gewahrt bleiben.

Ein SSL-Zertifikat enthält:

  • Den Namen des Inhabers des Zertifikats
  • Den öffentlichen Schlüssel des Zertifikatsinhabers
  • Das Ablaufdatum des Zertifikats
  • Informationen über die ausstellende Zertifizierungsstelle
  • Ein digitales Signatur der ausstellenden Zertifizierungsstelle

Um ein SSL-Zertifikat zu erhalten, sendet eine Organisation oder Einzelperson eine Anfrage an eine Zertifizierungsstelle (CA, Certificate Authority). Die CA überprüft dann die Echtheit und Identität der Antragsteller, bevor sie ein Zertifikat ausstellt.

Wenn ein Benutzer auf eine mit SSL gesicherte Website zugreift, stellt der Server das SSL-Zertifikat bereit. Der Webbrowser des Benutzers überprüft die Gültigkeit des Zertifikats und stellt dann eine sichere Verbindung zum Server her. Das Vorhandensein eines gültigen SSL-Zertifikats wird in den meisten Webbrowsern durch ein Schlosssymbol in der Adressleiste oder ein "https://" in der URL angezeigt.

Was ist HSTS (Header Set Transport Security)

HSTS steht für "HTTP Strict Transport Security". Es ist ein Webserver-Direktiv, das Webbrowser anweist, nur über gesicherte HTTPS-Verbindungen mit dem Server zu kommunizieren und jegliche Versuche, über unsicheres HTTP zuzugreifen, zu blockieren oder umzuleiten.

Vorteile von HSTS:

  1. Schutz vor Downgrade-Angriffen: Einige Angreifer könnten versuchen, den Webverkehr von HTTPS auf das unsichere HTTP-Protokoll herabzustufen. Mit HSTS wird dieser Versuch blockiert.
  2. Automatische HTTPS-Umleitung: Wenn ein Benutzer oder eine Anwendung versucht, über HTTP auf eine Webseite zuzugreifen, leitet der Browser automatisch auf die HTTPS-Version um.
  3. Erhöhte Sicherheit: Durch die Erzwingung von HTTPS werden Man-in-the-Middle-Angriffe und das Ausspähen von Daten erheblich erschwert.
  4. Benutzerfreundlichkeit: Benutzer müssen sich nicht darum kümmern, "https://" manuell einzugeben, da die sichere Verbindung automatisch erzwungen wird.

HSTS erhöht die Sicherheit von Websites erheblich, indem sichergestellt wird, dass die Kommunikation immer verschlüsselt ist und potenzielle Angriffsvektoren wie Downgrade-Angriffe verhindert werden. Es ist eine empfohlene Sicherheitsmaßnahme für alle Websites, die vertrauliche Benutzerdaten verarbeiten.

Vorausetzung um ein SSL Zertifikat zu beantragen

Damit ein SSL Zertifikat erfolgreich beantragt werden kann, gibt es ein paar Dinge zu beachten sind.

  • Portweiterleitung der Ports 443 und 80 müssen auf Euren Server eingerichtet sein
  • Eine DynDNS Adresse muss eingerichtet sein und die Adresse muss auf Eure dynamische IP Adresse zeigen
  • Eine Domain bei einem Hoster muss eingerichtet sein und der DNS Eintrag muss gesetzt sein und die Domain muss auf Eure öffentliche fixe IP Adresse zeigen
  • Euer Webserver (Apache2 oder Nginx) muss mit einem vHost eingerichtet sein der Eure Domainanfragen auf Port 80 entgegen nimmt und an Euren Webdienst weiterleitet

SSL Zertifikat von Letsencrypt beantragen

Let's Encrypt ist eine kostenlose, automatisierte und offene Zertifizierungsstelle, die es Website-Besitzern ermöglicht, SSL/TLS-Zertifikate zu erhalten und zu erneuern. Der Vorgang wird in der Regel mit dem certbot-Werkzeug durchgeführt, es gibt jedoch auch viele andere Clients. Wir konzentrieren uns auf certbot in der Apache Variante wie es auf dem HomeServer bereits installiert ist. Certbot ist auf unserem HomeServer bereits installiert. Für alle anderen die Certbot mit Apache benutzen wollen können Certbot mit folgendem Befehl installieren:

sudo apt install certbot python3-certbot-apache

Danach muss der Standard Certbot befehl den wir benutzen noch abgeändert werden. Der Syntax lautet:

sudo certbot --apache -m email@domain.com -d cloud.domain.com

cloud.domain.com ist Eure Domain auf die Eure Nextcloud hört, sie muss mit dem Webserver vHost übereinstimmen und es muss ein DNS oder DynDNS Eintrag dafür vorhanden sein. Email@domain.com ist Eure Email Adresse, dies dient dazu Euch über ablaufende Zertifikate zu informieren.

Setzt den Befehl entsprechen ab, danach werdet Ihr von certbot 2 Dinge gefragt:

Zuerst müsst Ihr die Termins of Service aktzeptieren, und anschliessend könnt Ihr LetsEncrypt erlauben Eure Email-Adresse zu verwenden um Eure neuste Informationen zu Entwicklungen zuzusenden.

Hat alles erklappt, wird Euch certbot darüber informieren dass die Zertifikate erfolgreich bentragt werden konnten und in welchen Ordner diese abgelegt worden sind. Certbot erstellt Euch automatisch ein SSL Variante eures Port 80 vHosts und richtet einen http to https redirect ein.

Neues Zertifkat beantragen nach Ablauf

SSL Zertifikate sind 3 Monate gültig, Certbot wird Euch kurz vor Ablauf automatisch ein neues beantragen, Ihr müsst Euch um nichts kümmern. Es gelten die selben Vorausetzungen wie das erste Zertifikat zu beantragen (Portweiterleitung, DynDNS und DNS Einträge müssen stimmen).

HSTS Einrichten

Nun richten wir noch HSTS ein damit niemand Downgrade Verbindungen erzwingen kann. Öffnet dafür Euren vHost der vom Certbot eingerichtet worden ist. Das geht mit:

sudo nano /etc/apache/sites-availabe/vHostname-le-ssl.conf

vHostname ist der name Eurer vHost Datei

Scrollt ans Ende der Konfiguration und fügt folgendes überhalb Euren SSL Einstellungen ein:

<IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>

Das ganze muss dann so aussehen:

Speichert das ganze mit strg+x ab und beendet mit strg+x

Startet Apache neu mit:

sudo systemctl restart apache2.service

Es Darf kein Fehler beim neustarten von Apache2 auftauchen.

Bravo! Ihr habt nun erfolgreich ein SSL Zertifikat für Euren Webdienst beantragt und habt jetzt immer eine gesicherte Verbindung zwischen Eurem Client und Eurer Nextcloud bzw Eurem Webdienst.

Mehr ist nicht einzustellen und wir sind bereits am Ende des Artikels. Ich hoffe der Beitrag SSL Zertifikat für Nextcloud HomeServer beantragen hat Euch gefallen, habt Ihr Fragen, schreibt sie in die Kommentare!

Ähnliche Beiträge

Schreibe einen Kommentar

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