Kostenloses SSL Zertifikat erstellen

Dieser Artikel beschreibt wie Sie mit Let's Encrypt und Certbot ein kostenloses SSL Zertifikat für Ihre Webseite erstellen können. Insbesondere nachdem Dienste wie z.B. ZeroSSL oder SSL Gebühren erheben, erscheint dieser Ansatz eine gute Alternative zu sein.

Aus verschiedenen Gründen sollte Ihre Webseite SSL Zertifikate verwenden. Zunächst erlaubt es verschlüsselte Kommunikation zwischen dem Browser Ihrer Seitenbesuchern und dem Webserver. Dabei wird das HTTPS-Protokoll verwendet, was das Risiko von einem sogenannten Man-In-The-Middle Angriff reduziert. Inbesondere wenn sensible Daten wie z.B. Passwörter oder personenbezogenene Daten ausgetauscht werden sollte dies mit Hilfe von Verschlüsselung passieren. Die Verwendung von HTTPS kann auch Auswirkungen auf die Suchmaschinenoptimierung (SEO) haben. Viele Browser zeigen dem Seitenbesucher eine Warnung an, falls Seiten nicht über HTTPS erreichbar sind, was zu einer schlechten Nutzererfahrung führen kann.

In der Vergangenheit haben wir Zertifikate mit Hilfe von ZeroSSL erstellt. Es scheint jedoch, dass das Geschäftsmodell geändert wurde und nun muss für die Erneuerung von SSL Zertifikaten eine Gebühr in Höhe von 10$ pro Monat bezahlt werden. Auch SSL for free, ein weiterer Dienst zur Erstellung von SSL Zertifikaten scheint keine Option mehr zu sein, nach der Fusionierung mit ZeroSSL.

Natürlich können Sie Geld für ein SSL Zertifikat bezahlen und gegebenenfalls den Aufwand auf Ihrer Seite reduzieren, insbesondere wenn Sie direkt bei Ihrem Webhoster ein derartiges Zertifikat buchen. Die Kosten dafür dürften typischerweise im Bereich von wenigen Dollar pro Monat liegen. In vielen Fällen jedoch würde auch ein kostenloses Zertifikat völlig ausreichen.

SSL Zertifikat mit Let's Encrypt und Certbot erstellen

Let's Encrypt ist eine non-profit Zertifizierungsstelle, die kostenlose SSL Zertifikate zur Verfügung stellt. Aktuell setzen über 240 Mio. Webseiten weltweit Zertifikate von Let's Encrypt ein.

Für die Bereitstellung des Zertifikats empfiehlt Let's Encrypt die Verwendung von Certbot, eine Open-Source Software welche die Erstellung des Zertifikates deutlich vereinfacht. Die Details und genaue Vorgehensweise hängt stark von Ihrem Anbieter und Webhosting Setup ab. Diese Webseite verwendet einen virtuellen Server, der von HostEurope gemanaged wird. Daher habe ich keinen root Zugang und verwende den Certbot im manuellen Modus. Mit root Zugang kann die Bereitstellung von SSL Zertifikaten deutlich einfacher und automatisierter erfolgen. Auf  https://certbot.eff.org/instructions stehen hierzu weitere Informationen zur Verfügung.

Zunächst habe ich mit folgendem Befehl Certbot auf meinem Ubuntu System installiert:

sudo apt install certbot

Als nächstes habe ich die Provisionierung des SSL Zertifikates mit folgendem Befehl angestoßen:

sudo certbot certonly --manual

Während diesem Vorgang werden verschiedene Informationen abgefragt:

  • die Domain-Namen, für die das Zertifikat gelten soll (ggfs. die www Subdomain nicht vergessen!)
  • Einwilligung zum Loggen Ihrer IP (muss akzeptiert werden)

Um Sicherzustellen, dass Sie Kontrolle über die angegebenen Domains haben, müssen Sie einen bestimmten Inhalt auf Ihrem Webserver bereitstellen. Dafür können Sie einfach lokal die entsprechende Datei mit dem Inhalt erzeugen und dann per FTP auf Ihren Webserver laden. Falls Sie über einen SSH Zugang verfügen sollten, könnten Sie die Datei auch direkt auf dem Webserver erzeugen. Stellen Sie sicher, dass die den Inhalt auch tatsächlich abrufen können bevor Sie fortfahren.

Als nächstes wird ein Bot versuchen den Inhalt aufzurufen. Sollte dies erfolgreich sein, werden das Zertifikat, der private Schlüssel sowie die Zertifikatskette auf Ihrem Dateisystem erzeugt werden.

Sie können dann diese Dateien bei Ihrem Webhoster hinterlegen. Nach einem kurzen Moment, sollte dann das entsprechende SSL Zertifikat für Ihre Webseite verwendet werden, was Sie einfach in Ihrem Browser überprüfen können.

Benötigen Sie Hilfe bezüglich SSL Zertifikate? Bitte kontaktieren Sie uns - wir freuen uns von Ihnen zu hören!