So erwerben und installieren Sie ein SSL-Zertifikat
Einleitung
Dieses Tutorial zeigt Ihnen, wie Sie ein SSL-Zertifikat von einer vertrauenswürdigen, kommerziellen Zertifizierungsstelle (Certificate Authority, CA) erwerben und installieren. SSL-Zertifikate ermöglichen es Webservern, ihren Datenverkehr zu verschlüsseln, und bieten auch eine Methode, um die Identität von Servern gegenüber ihren Besuchern zu validieren. Websites, die SSL verwenden, sind über das Protokoll https:// zugänglich.
Vor den 2010er Jahren verwendeten viele kleinere Websites nicht immer SSL oder HTTPS. Seitdem sind die Erwartungen an die Sicherheit gestiegen, und das Let’s Encrypt-Projekt wurde ins Leben gerufen, um kostenlose, vertrauenswürdige SSL-Zertifikate im großen Maßstab bereitzustellen, sodass fast jeder HTTPS nach Bedarf verwenden kann.
Es gibt jedoch einige Einschränkungen bei Let’s Encrypt-Zertifikaten. Sie laufen alle 3 Monate ab und erfordern in der Regel ein funktionierendes Skript zur automatischen Erneuerung. Außerdem sind sie in Umgebungen, in denen dies nicht möglich ist, unpraktisch. Let’s Encrypt bietet keine Extended Validation-Zertifikate, die die rechtmäßige Inhaberschaft Ihrer Webpräsenz validieren, oder Wildcard-Zertifikate, die automatisch mit jeder möglichen Subdomain Ihrer Website übereinstimmen (z. B. shop.beispiel.de), ohne dass Sie jede von ihnen manuell registrieren müssen.
Für die meisten Nutzer sind dies jedoch keine wesentlichen Einschränkungen. Let’s Encrypt ist eine beliebte Option für viele private und kommerzielle Websites. Wenn Sie jedoch spezielle Anforderungen an Unternehmenssoftware oder einen sehr großen kommerziellen Betrieb haben, sollten Sie den Kauf eines Zertifikats von einer kommerziellen CA in Betracht ziehen.
Dieses Tutorial behandelt die Auswahl und Bereitstellung eines SSL-Zertifikats von einer vertrauenswürdigen Zertifizierungsstelle. Nachdem Sie Ihr SSL-Zertifikat erworben haben, behandelt dieses Tutorial die Installation auf den Webservern Nginx und Apache.
Voraussetzungen
Es gibt mehrere Voraussetzungen, um zu versuchen, ein SSL-Zertifikat von einer kommerziellen CA zu erhalten:
- Ein registrierter Domainname. In diesem Tutorial wird durchgehend
beispiel.de
verwendet. Sie können einen Domainnamen bei Namecheap erwerben, kostenlos bei Freenom erhalten oder den Domain-Registrar Ihrer Wahl nutzen. - Zugriff auf eine der E-Mail-Adressen im WHOIS-Datensatz Ihrer Domain oder auf eine „Admin“-E-Mail-Adresse der Domain. Zertifizierungsstellen, die SSL-Zertifikate ausstellen, validieren in der Regel die Kontrolle über die Domain, indem sie eine Validierungs-E-Mail an eine der Adressen im WHOIS-Datensatz der Domain oder an eine allgemeine Admin-E-Mail-Adresse der Domain senden.
- DNS-Einträge, die für Ihren Server eingerichtet sind.
- Dieses Tutorial enthält Konfigurationsanweisungen für einen Ubuntu 22.04-Server, der gemäß der Anleitung zur Ersteinrichtung von Ubuntu 22.04 eingerichtet wurde, einschließlich eines sudo-fähigen Benutzers ohne Root-Rechte und einer Firewall.
- Ein installierter Webserver wie Nginx oder Apache. Stellen Sie sicher, dass Sie einen Serverblock (oder virtuellen Apache-Host) für Ihre Domain haben.
Schritt 1 – Auswahl Ihrer Zertifizierungsstelle
Wenn Sie nicht sicher sind, welche Zertifizierungsstelle Sie verwenden sollen, gibt es einige Faktoren, die Sie berücksichtigen sollten:
Mitgliedschaft in Root-Zertifikatsprogrammen
Der wichtigste Punkt ist, dass die von Ihnen gewählte CA Mitglied der Root-Zertifikatsprogramme der am häufigsten verwendeten Betriebssysteme und Webbrowser ist, d. h., sie ist eine „vertrauenswürdige“ CA, und ihr Root-Zertifikat wird von gängigen Browsern und anderer Software als vertrauenswürdig eingestuft. Wenn das SSL-Zertifikat Ihrer Website von einer vertrauenswürdigen CA signiert wurde, wird dessen Identität von Software, die der CA vertraut, als gültig angesehen.
Die meisten kommerziellen CAs, die Sie antreffen werden, sind Mitglieder der gängigen Root-CA-Programme. Es schadet jedoch nicht, dies vor dem Kauf Ihres Zertifikats zu überprüfen. Apple veröffentlicht beispielsweise seine Liste der vertrauenswürdigen SSL-Root-Zertifikate.
Zertifikatstypen
Stellen Sie sicher, dass Sie eine CA wählen, die den von Ihnen benötigten Zertifikatstyp anbietet. Viele CAs bieten Variationen dieser Zertifikatstypen unter einer Vielzahl von Namen und Preismodellen an. Hier ist eine kurze Beschreibung der einzelnen Typen:
- Einzelne Domain: Wird für eine einzelne Domain verwendet, z. B. beispiel.de. Zusätzliche Subdomains wie www.beispiel.de sind nicht enthalten.
- Wildcard: Wird für eine Domain und alle ihre Subdomains verwendet. Ein Wildcard-Zertifikat für *.beispiel.de kann z. B. auch für www.beispiel.de und shop.beispiel.de verwendet werden.
- Mehrere Domains: Diese können mit mehreren Domains und Subdomains verwendet werden, die dem Feld „Subject Alternative Name“ hinzugefügt werden. Ein einziges Multi-Domain-Zertifikat könnte z. B. für beispiel.de, www.beispiel.de und beispiel.net verwendet werden.
Validierungsstufen
Zusätzlich zu den oben genannten Zertifikatstypen gibt es verschiedene Validierungsstufen, die von CAs angeboten werden:
- Domain-Validierung (DV): DV-Zertifikate werden ausgestellt, nachdem die CA bestätigt hat, dass der Anforderer die Domain besitzt oder kontrolliert.
- Organisationsvalidierung (OV): OV-Zertifikate können nur ausgestellt werden, nachdem die ausstellende CA die rechtliche Identität des Anforderers überprüft hat.
- Erweiterte Validierung (EV): EV-Zertifikate können nur ausgestellt werden, nachdem die ausstellende CA die rechtliche Identität und weitere Details des Anforderers gemäß einem strengen Satz von Richtlinien überprüft hat. Der Zweck dieses Zertifikatstyps besteht darin, den Besuchern Ihrer Website zusätzliche Sicherheit in Bezug auf die Legitimität der Identität Ihrer Organisation zu bieten. EV-Zertifikate können für eine einzelne oder mehrere Domains ausgestellt werden, jedoch nicht für Wildcards.
Zusätzliche Funktionen
Viele CAs bieten eine Vielzahl von „Bonus“-Funktionen an, um sich von anderen Anbietern von SSL-Zertifikaten abzuheben. Einige dieser Funktionen können Ihnen Geld sparen, daher ist es wichtig, Ihre Bedürfnisse mit den Angeboten abzugleichen, bevor Sie einen Kauf tätigen. Beispiele für Funktionen, auf die Sie achten sollten, sind kostenlose Zertifikatsneuausstellungen oder ein preisgünstiges Zertifikat für eine einzelne Domain, das sowohl für www. als auch für den Basenamen der Domain funktioniert, z. B. www.beispiel.de mit einem SAN von beispiel.de.
Schritt 2 – Generieren eines CSR und eines privaten Schlüssels
Nachdem Sie Ihre Voraussetzungen geklärt haben und wissen, welchen Zertifikatstyp Sie benötigen, ist es an der Zeit, eine Zertifikatsanforderung (CSR) und einen privaten Schlüssel zu generieren.
Wenn Sie planen, Apache HTTP oder Nginx als Webserver zu verwenden, können Sie den Befehl openssl
verwenden, um Ihren privaten Schlüssel und Ihre CSR auf Ihrem Webserver zu generieren. In diesem Tutorial können Sie alle relevanten Dateien in Ihrem Home-Verzeichnis aufbewahren, aber Sie können sie auch an einem anderen sicheren Ort auf Ihrem Server speichern:
openssl req -newkey rsa:2048 -nodes -keyout beispiel.de.key -out beispiel.de.csr
An dieser Stelle werden Sie aufgefordert, mehrere Informationen einzugeben, die in Ihrer Zertifikatsanforderung enthalten sein werden. Der wichtigste Teil ist das Feld „Common Name“, das mit dem Namen übereinstimmen sollte, den Sie mit Ihrem Zertifikat verwenden möchten – z. B. beispiel.de, www.beispiel.de oder (für eine Wildcard-Zertifikatsanforderung) *.beispiel.de. Wenn Sie planen, ein OV- oder EV-Zertifikat zu erhalten, stellen Sie sicher, dass alle anderen Felder Ihre Organisations- oder Unternehmensdaten genau widerspiegeln. Das Bereitstellen eines „Challenge Password“ ist nicht erforderlich.
Beispiel:
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Bayern
Locality Name (eg, city) []:München
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mein Unternehmen
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:beispiel.de
Email Address []:info@beispiel.de
Dies generiert eine .key
– und eine .csr
-Datei. Die .key
-Datei ist Ihr privater Schlüssel und sollte sicher aufbewahrt werden. Die .csr
-Datei ist das, was Sie an die CA senden, um Ihr SSL-Zertifikat zu beantragen.
Listen Sie Ihre generierten Dateien auf, um sie zu bestätigen:
ls beispiel.de*
Um den Inhalt Ihrer CSR anzuzeigen, verwenden Sie den folgenden Befehl:
cat beispiel.de.csr
Schritt 3 – Erwerb und Erhalt eines Zertifikats
Es gibt viele kommerzielle CA-Anbieter, und Sie können die für Ihre Einrichtung am besten geeigneten Optionen vergleichen. Zum Beispiel fungiert Namecheap als Wiederverkäufer von SSL-Zertifikaten und bietet derzeit Zertifikate von Comodo CA an. Nachdem Sie eine Auswahl getroffen haben, müssen Sie die in Schritt 2 generierte CSR hochladen. Ihr CA-Anbieter wird außerdem wahrscheinlich einen „Genehmigung“-Schritt enthalten, der eine Validierungsanfrage-E-Mail an eine Adresse im WHOIS-Datensatz Ihrer Domain oder an eine Administratoradresse der Domain sendet, für die Sie ein Zertifikat erhalten.
Nach der Genehmigung des Zertifikats wird es an den benannten Administrator per E-Mail gesendet. Speichern Sie es auf Ihrem Server an dem gleichen Ort, an dem Sie Ihren privaten Schlüssel und die CSR generiert haben. Benennen Sie das Zertifikat mit dem Domainnamen und der Erweiterung .crt
, z. B. beispiel.de.crt
, und benennen Sie das Zwischenzertifikat intermediate.crt
.
Schritt 4 – Aktualisierung Ihrer Firewall, um HTTPS zuzulassen
Wenn Sie die ufw
-Firewall gemäß den Empfehlungen unseres Ubuntu 22.04-Einrichtungsleitfadens aktiviert haben, müssen Sie die Einstellungen anpassen, um HTTPS-Verkehr zuzulassen. Nginx und Apache registrieren bei der Installation einige Profile bei ufw
.
Sie können die aktuellen Einstellungen anzeigen, indem Sie Folgendes eingeben:
sudo ufw status
Wenn Sie eine Ausgabe erhalten, die nur Nginx HTTP
oder Apache
enthält, ist nur HTTP-Verkehr zum Webserver zugelassen:
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
Prüfen Sie die aktualisierten Einstellungen:
sudo ufw status
Stellen Sie sicher, dass HTTPS-Verkehr aktiviert und HTTP-Verkehr entfernt wurde.
Schritt 5 – Installation eines Zertifikats auf Ihrem Server
Nginx
Wenn Ihre CA nur ein Zwischenzertifikat zurückgegeben hat, müssen Sie eine einzelne „verkettete“ Zertifikatsdatei erstellen:
cat beispiel.de.crt intermediate.crt > beispiel.de.chained.crt
Bearbeiten Sie Ihre Standard-Nginx-Serverblock-Konfigurationsdatei:
sudo nano /etc/nginx/sites-enabled/default
Aktualisieren Sie die listen
-Direktive, um SSL zu aktivieren, und fügen Sie die Pfade zu Ihrem Zertifikat und privaten Schlüssel hinzu.
Apache
Um ein SSL-Zertifikat manuell auf Apache bereitzustellen, öffnen Sie Ihre Standard-Apache-Konfigurationsdatei für virtuelle Hosts:
sudo nano /etc/apache2/sites-available/000-default.conf
Bearbeiten Sie die Datei so, dass Ihr Webserver auf Port 443 lauscht, und geben Sie die Pfade zu Ihrem Zertifikat und Schlüssel an:
SSLEngine on
SSLCertificateFile /home/user/beispiel.de.crt
SSLCertificateKeyFile /home/user/beispiel.de.key
SSLCACertificateFile /home/user/intermediate.crt
Um HTTP-Anfragen automatisch zu HTTPS umzuleiten, fügen Sie Folgendes hinzu:
ServerName beispiel.de
Redirect permanent / https://beispiel.de/
Aktivieren Sie das Apache-SSL-Modul:
sudo a2enmod ssl
Starten Sie Apache neu, um die neue Konfiguration zu laden und TLS/SSL über HTTPS zu aktivieren:
sudo systemctl restart apache2
Testen Sie Ihre Website, indem Sie sie über HTTPS aufrufen (z. B. https://beispiel.de
). Überprüfen Sie außerdem, ob die Weiterleitung von HTTP zu HTTPS wie erwartet funktioniert.
Fazit
In diesem Tutorial haben Sie gelernt, wann Sie ein SSL-Zertifikat von einer kommerziellen Zertifizierungsstelle (CA) erwerben sollten, wie Sie die verfügbaren Optionen vergleichen und Ihre Auswahl treffen können. Außerdem haben Sie gelernt, wie Sie Nginx oder Apache für die Unterstützung von HTTPS konfigurieren können. Indem Sie diese Schritte befolgen, können Sie Ihre Website sichern und Vertrauen bei Ihren Besuchern schaffen.