Vserver certbot: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „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 un…“) |
|||
Zeile 1: | Zeile 1: | ||
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. | 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: | Als erstes muss nano installiert werden. Nano ist ein einfach bedienbarer Editor. Dieser wird in diesem Artikel genutzt, um Konfigurationsdateien anzupassen: | ||
− | |||
+ | <code>apt-get update && apt-get install -y nano</code> | ||
+ | |||
+ | == Paketquellen ergänzen == | ||
Öffnen Sie mit nano die sources.list und fügen Sie am ende dieser Datei folgende Quelle hinzu: | Öffnen Sie mit nano die sources.list und fügen Sie am ende dieser Datei folgende Quelle hinzu: | ||
− | |||
− | |||
+ | <code>nano /etc/apt/sources.list</code> | ||
+ | |||
+ | <code>deb http://ftp.debian.org/debian jessie-backports main</code> | ||
+ | |||
+ | == Certbot installieren == | ||
Danach kann der certbot von der frisch hinzugefügten Quelle installiert werden: | Danach kann der certbot von der frisch hinzugefügten Quelle installiert werden: | ||
− | |||
+ | <code>apt-get update && apt-get install -y certbot -t jessie-backports</code> | ||
+ | |||
+ | == 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 Webroot versichern. Bei der standard nginx Konfiguration ist dies /var/www/html. Das Zertifikat wird mit folgendem Befehl erstellt: | 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 Webroot versichern. 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 | + | |
+ | <code>certbot certonly --webroot -w /var/www/html -d cert.benhosting.org</code> | ||
+ | |||
+ | Sie werden aufgefordert eine E-Mail Adresse anzugeben. Diese ist notwendig, um im Falle eines ablaufenden Zertifikats erinnert zu werden. | ||
+ | |||
+ | [[Datei:Certbot_email.png|500px]] | ||
+ | |||
+ | Danach müssen Sie noch den Bedingungen von Let's Encrypt zustimmen. | ||
+ | |||
+ | [[Datei:Certbot_terms.png|500px]] | ||
+ | |||
+ | Nach dem erfolgreichen generieren des Zertifikats erhalten Sie folgenden Bildschirm: | ||
+ | |||
+ | [[Datei:Certbot_summarty.png|500px]] | ||
+ | |||
+ | |||
+ | == 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: | ||
+ | |||
+ | <code>nano /etc/nginx/sites-available/default</code> | ||
+ | |||
+ | Die standard Konfiguration sieht wie folgt aus: | ||
+ | |||
+ | [[Datei:Nginx_standard.png|500px]] | ||
+ | |||
+ | 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: | ||
+ | |||
+ | [[Datei:Nginx_ssl.png|500px]] | ||
+ | |||
+ | Nun funktioniert das Zertifikat prinzipiell schon. Der nginx Server muss mit folgendem Befehl neugestartet werden: | ||
+ | |||
+ | <code>/etc/init.d/nginx restart</code> | ||
+ | |||
+ | |||
+ | [[Datei:Chrome_ssl.png|500px]] | ||
+ | |||
+ | == 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: | ||
+ | |||
+ | <code>cd /etc/ssl/certs && openssl dhparam -out dhparam.pem 4096</code> | ||
+ | |||
+ | Danach kann die Konfiguration von nginx mit nano ergänzt werden: | ||
+ | |||
+ | <code>nano /etc/nginx/sites-available/default</code> | ||
+ | |||
+ | [[Datei:Nginx_ssl_param.png|500px]] | ||
+ | |||
+ | Hier finden Sie die vollständige Konfiguration: | ||
+ | http://wiki.benhosting.org/data/nginx | ||
+ | |||
+ | Danach muss der nginx erneut neugestartet werden: | ||
+ | |||
+ | <code>/etc/init.d/nginx restart</code> |
Version vom 13. September 2016, 08:14 Uhr
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.
Inhaltsverzeichnis
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 Webroot versichern. 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.
Danach müssen Sie noch den Bedingungen von Let's Encrypt zustimmen.
Nach dem erfolgreichen generieren des Zertifikats erhalten Sie folgenden Bildschirm:
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:
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:
Nun funktioniert das Zertifikat prinzipiell schon. Der nginx Server muss mit folgendem Befehl neugestartet werden:
/etc/init.d/nginx restart
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
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