Vserver certbot

Aus Benhosting
Version vom 13. September 2016, 08:16 Uhr von Benhosting (Diskussion | Beiträge) (Zertifikat erzeugen)

Wechseln zu: Navigation, Suche

Die Verbreitung von mit SSL verschlüsselten Websiten nimmt zu, eine sehr gute Sache. Mit einer SSL verschlüsselten Website ist der Traffic zwischen Server und Client verschlüsselt und kann nicht ohne weiteres abgehört werden. Seit geraumer Zeit werden von der Organisation Let's Encrypt kostenlose SSL Zertifikate angeboten. In diesem Artikel beschreiben wir, wie ein solches installiert werden kann. Dafür nutzen wir einen Debian 8 Jessie vServer welcher eine standard nginx Konfiguration aufweist.

Nano installieren

Als erstes muss nano installiert werden. Nano ist ein einfach bedienbarer Editor. Dieser wird in diesem Artikel genutzt, um Konfigurationsdateien anzupassen:

apt-get update && apt-get install -y nano

Paketquellen ergänzen

Öffnen Sie mit nano die sources.list und fügen Sie am ende dieser Datei folgende Quelle hinzu:

nano /etc/apt/sources.list

deb http://ftp.debian.org/debian jessie-backports main

Certbot installieren

Danach kann der certbot von der frisch hinzugefügten Quelle installiert werden:

apt-get update && apt-get install -y certbot -t jessie-backports

Zertifikat erzeugen

Nun sind wir bereits soweit, dass wir das erste Zertifikat erstellen können. Dafür müssen wir jedoch zuerst sicherstellen, dass unsere Domain/Website korrekt funktioniert. In diesem Fall wird die Subdomain "cert.benhosting.org" genutzt. Die von Ihnen verwendete Domain/Subdomain muss zwingend auf den verwendeten Server zeigen. Andernfalls schlagen die nötigen Verifikationen vom Certbot fehl. Zudem müssen wir uns über das korrekte Webroot versichern, dieses wird zur Verifikation zwingend benötigt. Bei der standard nginx Konfiguration ist dies /var/www/html. Das Zertifikat wird mit folgendem Befehl erstellt:

certbot certonly --webroot -w /var/www/html -d cert.benhosting.org

Sie werden aufgefordert eine E-Mail Adresse anzugeben. Diese ist notwendig, um im Falle eines ablaufenden Zertifikats erinnert zu werden.

Certbot email.png

Danach müssen Sie noch den Bedingungen von Let's Encrypt zustimmen.

Certbot terms.png

Nach dem erfolgreichen generieren des Zertifikats erhalten Sie folgenden Bildschirm:

Certbot summarty.png

Nginx konfiguieren

Nun passen wir die Konfiguration von nginx an. Diese muss so angepasst werden, dass unverschlüsselter Traffic auf Port 80 auf verschlüsselt sprich Port 443 forwarded wird. Dies geschieht mit einem 301 forward. Zudem muss der virtuelle Server für verschlüsselten Traffic konfiguiert werden:

nano /etc/nginx/sites-available/default

Die standard Konfiguration sieht wie folgt aus:

Nginx standard.png

Um das Zertifikat zu installieren sind folgende Änderungen notwendig. Die Änderungen fügen zu einem SSL Server mit dem Let's Encrypt cert auf Port 443 + 301 forward auf Port 80:

Nginx ssl.png

Nun funktioniert das Zertifikat prinzipiell schon. Der nginx Server muss mit folgendem Befehl neugestartet werden:

/etc/init.d/nginx restart


Chrome ssl.png

Erweiterte Nginx Konfiguration

Diese Lösung ist jedoch noch nicht "perfekt". Es werden z.B. heute als unsicher geltende Protokolle zugelassen etc. Um dies zu umgehen (und zusätzlich in SSL Rankings höher dazustehen) sind einige weitere Parameter in der Konfiguration notwendig. Zudem sorgen wir für eine sicherere DH Abwicklung. Dafür muss zuerst ein Schlüssel erzeugt werden:

cd /etc/ssl/certs && openssl dhparam -out dhparam.pem 4096

Danach kann die Konfiguration von nginx mit nano ergänzt werden:

nano /etc/nginx/sites-available/default

Nginx ssl param.png

Hier finden Sie die vollständige Konfiguration: http://wiki.benhosting.org/data/nginx

Danach muss der nginx erneut neugestartet werden:

/etc/init.d/nginx restart