• Home
  • Google
  • Nginx: SSL Zertifikat anfordern und einrichten
NGINX

Nginx: SSL Zertifikat anfordern und einrichten

Inzwischen ist es sicherlich bei jedem angekommen, dass Google in nächster Zukunft Websites mit HTTPS (SSL/TLS) besser im Ranking bewertet als HTTP. Ich kann diesen Schritt nur begrüßen, doch leider finde ich diesen Schritt auch etwas zu spät. Das hätte man auch schon vor den ganzen NSA-Enthüllungen forcieren können. Aber besser spät als nie. Es ist immer noch unglaublich wie viele Daten unverschlüsselt im Internet übertragen werden. Sei es die Anmeldung bei einigen WordPress-Backends oder Verbidnung von eine App zu einem Server. Da gibt es noch eine Menge Nachholbedarf.
Vielen haben eine Website möchte diese nun per HTTPS absichern (und ein besseres Ranking bei Google bekommen), aber wissen nicht wie man das macht.
Damit ein HTTPS Serverzertifikat auch von 99,9 Prozent aller Browser auch akzeptiert wird, muss man sich ein Zertifikat bei einer öffentllichen Zertifizierungsstelle (CA) kaufen. Je nach Laufzeit und Art kostet das ca. 50€. Aber bevor man ein Zertifikat für seinen Webserver bekommt, muss man eine Zertifikatsanfrage (CSR) bei der Zertifizierungsstelle miteinreichen. Wer einen Linux-Server mit OpenSSL benutzt und auf diesen per SSH Zugriff hat, kann das mit wenigen Befehlen selber erledigen. Bei wem das nicht geht muss sich an seinen Hoster wenden oder in der Webadmin nach einer Option dafür schauen.

Als erstes müssen wir einen privaten Schlüssel erzeugen. Die macht man mit folgendem Befehl in der Konsole:
openssl genrsa 2048 > private.key

Dabei wird ein privater Schlüssel „private.key“ mit 2048 bit Schlüssellänge erzeugt. Diesen privaten Schlüssel NICHT weitergeben! Speichert Euch den privaten Schlüssel sicher ab, denn ohne diesen Schlüssel nützt Euch das Zertifikat nichts!

Anschließend wird ein CSR-Datei erstellt (Da SHA1 geknackt gilt, gleich SHA2 nutzen!):
openssl req -new -sha256 -key private.key -out csr.pem

Jetzt bekommt man ein paar Fragen gestellt. Die wichtigste Frage ist, die Frage nachdem „common name“. An dieser Stelle müsst Ihr den Domainname angeben. In den meisten Fällen ohne www. Also beispielsweise example.de. Für ein Wildcard-Zertifikat, also ein Zertifikat welches auch für die Subdomains gültig ist, muss hier *.example.de angegeben werden.

Während der Zertifikatsbeantragung, Domain- oder Wildcard-Zertifikat, bei einer Zertifizierungstelle werdet Ihr irgendwann nachdem CSR gefragt. Den CSR „csr.pem“ mit einem Editor öffnen, den Inhalt kopieren und in das Onlineformular einfügen.
Wenn alles richtig ausgefüllt wurde, dann bekommt man meistens per Email sein öffentliches Zertifikat (CRT) zugeschickt. In der Mail sind meistens auch noch das root Zertifikat der CA und das intermediate Zertifikat dabei. Alle 3 Zertifikate am besten in eine Datei kopieren. Das sollte dann in etwa so aussehen:

-----BEGIN CERTIFICATE-----
Inhalt des Serverzertifikat von example.de
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Inhalt vom Root Zertifikat
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Inhalt vom Intermediate Zertifikat
-----END CERTIFICATE-----

Nun müsst Ihr bei Eurem Webserver nur SSL aktivieren und das Zertifikat angeben. Für Nginx sieht das so aus:

# SSL
# SSL einschalten
ssl on;
# Serverzertifiakt
ssl_certificate /etc/nginx/ssl/example-de.crt;
# Privater Schlüssel
ssl_certificate_key /etc/nginx/ssl/private.key;

Nachdem Neustart von Nginx (service nginx restart) sollte Eure Website nicht nur unter http://example.de/ erreichbar sein, sondern auch unter https://example.de/. Wer Apache als Webserver einsetzt sollte sich die SSL Dokumentation anschauen.

Wenn alles funktioniert hat, dann könnt Ihr Euch Gedanken darüber machen ob Ihr den SSL-Cache nutzen (Nginx) möchtet, die Cipher-Suite ändern möchtet oder von SSL auf TLS umsteigen (Nginx) wollt. Vielleicht geht Ihr auch noch einen Schritt weiter und denkt über SPDY mache ;)

Ach ja, sofern Ihr einen eigenen Mailserver betreibt der auch unter *.example.de erreichbar ist, dann könnt Ihr das erstellte Zertifikat auch für die Mailkommunikation (SMTPS, IMAPS, POP3S, …) nutzen. Sicher ist sicher!

Seit Blog-Gründung 2006 schreibe ich hier mal mehr, mal weniger in dieses Blog zu Themen die mich interessieren. Bin auch zu finden bei Twitter, Facebook, Instagram und Google+.

Cookie-Einstellung

Bitte treffen Sie eine Auswahl. Weitere Informationen zu den Auswirkungen Ihrer Auswahl finden Sie unter Hilfe. Datenschutzerklärung | Impressum

Treffen Sie eine Auswahl um fortzufahren

Ihre Auswahl wurde gespeichert!

Weitere Informationen

Hilfe

Um fortfahren zu können, müssen Sie eine Cookie-Auswahl treffen. Nachfolgend erhalten Sie eine Erläuterung der verschiedenen Optionen und ihrer Bedeutung.

  • Alle Cookies zulassen:
    Jedes Cookie wie z.B. Tracking- und Analytische-Cookies.
  • Nur First-Party-Cookies zulassen:
    Nur Cookies von dieser Webseite.
  • Keine Cookies zulassen:
    Es werden keine Cookies gesetzt, es sei denn, es handelt sich um technisch notwendige Cookies.

Sie können Ihre Cookie-Einstellung jederzeit hier ändern: Datenschutzerklärung. Impressum

Zurück