Vserver certbot: Unterschied zwischen den Versionen
(Anleitung für Apache hinzugefügt) |
|||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
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 bzw. Apache Konfiguration aufweist. |
== Nano installieren == | == Nano installieren == | ||
Zeile 5: | Zeile 5: | ||
<code>apt-get update && apt-get install -y nano</code> | <code>apt-get update && apt-get install -y nano</code> | ||
+ | |||
+ | Eine Anleitung zur Verwendung von nano sehen Sie [[VServer:_Die_wichtigsten_Linux_Befehle#nano|hier]]. | ||
== Paketquellen ergänzen == | == Paketquellen ergänzen == | ||
Zeile 16: | Zeile 18: | ||
Danach kann der certbot von der frisch hinzugefügten Quelle installiert werden: | Danach kann der certbot von der frisch hinzugefügten Quelle installiert werden: | ||
+ | Wenn Sie Nginx als Webserver verwenden: | ||
<code>apt-get update && apt-get install -y certbot -t jessie-backports</code> | <code>apt-get update && apt-get install -y certbot -t jessie-backports</code> | ||
+ | |||
+ | Wenn Sie Apache als Webserver verwenden: | ||
+ | <code>apt-get update && apt-get install -y python-certbot-apache -t jessie-backports</code> | ||
== Zertifikat erzeugen == | == 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 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: |
<code>certbot certonly --webroot -w /var/www/html -d cert.benhosting.org</code> | <code>certbot certonly --webroot -w /var/www/html -d cert.benhosting.org</code> | ||
Zeile 34: | Zeile 40: | ||
[[Datei:Certbot_summarty.png|500px]] | [[Datei:Certbot_summarty.png|500px]] | ||
− | |||
== Nginx konfiguieren == | == Nginx konfiguieren == | ||
Zeile 56: | Zeile 61: | ||
[[Datei:Chrome_ssl.png|500px]] | [[Datei:Chrome_ssl.png|500px]] | ||
− | == Erweiterte Nginx Konfiguration == | + | === 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: | 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: | ||
Zeile 73: | Zeile 78: | ||
<code>/etc/init.d/nginx restart</code> | <code>/etc/init.d/nginx restart</code> | ||
+ | |||
+ | == Apache konfigurieren == | ||
+ | Um Apache zu konfigurieren reicht es den folgenden Befehl zu verwenden: | ||
+ | |||
+ | <code>certbot --apache</code> | ||
+ | |||
+ | Nun geben wir im Assistenten erneut unseren Domain/Subdomain ein und bestätigen mit Ok. | ||
+ | |||
+ | Da wir bereits ein Zertifikat erstellt haben wird der Assistent uns fragen ob wir das bereits bestehende verwenden wollen, wir akzeptieren deshalb die erste Option (Bestehendes verwenden) und bestätigen wieder mit Ok. | ||
+ | |||
+ | Nun wird uns der Assistent fragen ob wir alle nutzer zwingen wollen SSL zu verwenden oder nicht. Wählen Sie bitte die gewünschte Option. Wir bestätigen wieder mit Ok. | ||
+ | |||
+ | Nun sollte die Installation in Apache erfolgreich gewesen sein. | ||
+ | |||
+ | == Testen des Zertifikats == | ||
+ | Wir können das Zertifikat entweder durch einfach es aufrufen der so eben "zertifizierten" Website im Browser, oder mithilfe der folgenden Website testen: | ||
+ | |||
+ | https://www.ssllabs.com/ssltest/analyze.html |
Aktuelle Version vom 23. Januar 2017, 10:04 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 bzw. Apache 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
Eine Anleitung zur Verwendung von nano sehen Sie hier.
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:
Wenn Sie Nginx als Webserver verwenden:
apt-get update && apt-get install -y certbot -t jessie-backports
Wenn Sie Apache als Webserver verwenden:
apt-get update && apt-get install -y python-certbot-apache -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.
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
Apache konfigurieren
Um Apache zu konfigurieren reicht es den folgenden Befehl zu verwenden:
certbot --apache
Nun geben wir im Assistenten erneut unseren Domain/Subdomain ein und bestätigen mit Ok.
Da wir bereits ein Zertifikat erstellt haben wird der Assistent uns fragen ob wir das bereits bestehende verwenden wollen, wir akzeptieren deshalb die erste Option (Bestehendes verwenden) und bestätigen wieder mit Ok.
Nun wird uns der Assistent fragen ob wir alle nutzer zwingen wollen SSL zu verwenden oder nicht. Wählen Sie bitte die gewünschte Option. Wir bestätigen wieder mit Ok.
Nun sollte die Installation in Apache erfolgreich gewesen sein.
Testen des Zertifikats
Wir können das Zertifikat entweder durch einfach es aufrufen der so eben "zertifizierten" Website im Browser, oder mithilfe der folgenden Website testen: