letsencrypt / SSL Zertifikate festlegen  [GELÖST]

Locked
robig
Posts: 8
Joined: Thu 17. Mar 2016, 17:56

letsencrypt / SSL Zertifikate festlegen

Post by robig »

Hallo keyhelp Team,

ich verwende inzwischen bei allen meinen kostenlose Domains SSL-Zertifikate von letsencrypt.org
Diese erfordern aktuell eine Konfiguration wie folgt:

Code: Select all

SSLCertificateKeyFile /etc/letsencrypt/live/example.org-0001/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/example.org-0001/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.org-0001/fullchain.pem
Warum kann ich im keyhelp Frontend nicht einfach die Pfade statt der Dateiinhalte angeben?
Oder was ist der hier empfohlene Weg zur Einbindung der Zertifikate.
Wichtig ist auch, dass die Dateien sich ändern können.
letsencrypt.org stellt nämlich nur Zertifikate mit einer Gültigkeit von 3 Monaten aus.
Das Renew übernimmt ein Cron-Job jeden Monat.

Danke

Robert Gröber
Florian-s
Posts: 20
Joined: Tue 29. Mar 2016, 18:57

Re: letsencrypt / SSL Zertifikate festlegen

Post by Florian-s »

1. Zertifikat mit Lets Encrypt erstellen.
2. Im Panel unter SSL-Zertifikate auf ein neues Zertifikat hinzufügen klicken.
3. Ganz oben im Drop Down Menü auf "Formular zum Anlegen eines Zertifikats wählen: Zertifikat als Text hochladen"
4. Inhalt von Letsencrypt privkey.pem ins erste Feld und cert.pem ins zweite Feld!

Wenn Keyhelp mit der Zeit gehen möchte, ist eine komplette Integration von Letsencrypt aber pflicht! ;)
User avatar
Martin
Posts: 984
Joined: Wed 20. Jan 2016, 00:43

Re: letsencrypt / SSL Zertifikate festlegen  [GELÖST]

Post by Martin »

Hallo,

die Integration von Let's Encrypt steht bereits auf unserer ToDo Liste. Einen genauen Termin gibt es hierfür momentan aber noch nicht.

Behelfsmäßig könnte man auch Zertifikate in KeyHelp erstellen und die dabei angelegten Zertifikatsdateien unter /etc/ssl/keyhelp/files durch symbolische Links auf die Let's Encrypt Zertifikatsdateien ersetzen. Auf diese weise bliebe die Möglichkeit erhalten die Zertifikate von Let's Encrypt durch einen Cronjob aktuell zu halten. (diese haben aktuell ja nur 3 Monate Laufzeit).
Viele Grüße,
Martin
nikko
Posts: 914
Joined: Fri 15. Apr 2016, 16:11

Re: letsencrypt / SSL Zertifikate festlegen

Post by nikko »

Hallo Martin,
gib uns doch mal bitte ne Step by Step Anleitung, um Lets Encrypt via Ubuntu / Debian und Keyhelp bis zur Implementierung mit automatischer Verlängerung nutzen zu können.
Ich habe mir die Schnipsel hier im Forums schon zusammengesucht, aber so richtig schlau werde ich noch nicht daraus.
Unter anderem kann ich mit den "symbolischen Links " nichts anfangen. Und zudem muss ja das System updatebar bleiben - nicht das es irgendwann kracht :(
Danke!
The software said: Requires Win Vista®, 7®, 8® or better. And so I installed Linux.
User avatar
Martin
Posts: 984
Joined: Wed 20. Jan 2016, 00:43

Re: letsencrypt / SSL Zertifikate festlegen

Post by Martin »

Hallo,

bezüglich Let's Encrypt würde ich hier vom Beispiel robigs ausgehen, d.H. ein Let's Encrypt Client holt Zertifikate und legt diese in seiner Ordnerstruktur ab.

Code: Select all

SSLCertificateKeyFile /etc/letsencrypt/live/example.org-0001/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/example.org-0001/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.org-0001/fullchain.pem
Da ich Let's Encrypt selbst noch nicht weitergehend getestet habe nehme ich dieses für das weitere Vorgehen als gegeben an und beschreibe im folgenden eine Möglichkeit, diese als Workaround in KeyHelp zu hinterlegen, sodass diese automatisch durch Let's Encrypt aktuell gehalten werden.

Schritt 1 - Anlegen des Zertifikates in KeyHelp
Hierfür das Let's Encrypt Zertifikat für die fragliche Domain in KeyHelp erstellt. Wie dies im einzelnen funktioniert ist im KeyHelp Adminhandbuch, Punkt 7.1.3.3 (Seite 52 ff.) erläutert. Als Zertifikat sollte hier zunächst das vom Let's Encrypt Client ursprünglich erstellte Zertifikat genutzt werden. Das CA Zwischenzertifikat sollte sich hierbei am Ende der /etc/letsencrypt/live/example.org-0001/fullchain.pem finden lassen. Sofern Let's Encrypt auch eine Extradatei für das CA Zertifikat anlegt, so kann dies auch genutzt werden. Für Schritt zwei wäre es ansonsten sinnvoll das CA Zertifikat (welches ja gleich bliebe) noch in einer Extradatei zu speichern. (Nennen wir sie: /etc/letsencrypt/live/example.org-0001/ca.pem)

Somit wäre das Zertifikat zunächst in KeyHelp verfügbar, allerdings manuell eingepflegt wodurch man dieses nach 3 Monaten von Hand updaten müsste. Der Let's Encrypt Client kann dies allerdings für das von ihm verwaltete Zertifikat automatisiert erledigen. Um dies auch in KeyHelp nutzen so können nun zu Punkt 2)

Schritt 2 - Verbinden des von KeyHelp ersten Zertifikates mit Let's Encrypt
KeyHelp erstellt Zertifikate in /etc/ssl/keyhelp/files (-ca.crt, .key, .crt) und das .pem findet sich in /etc/ssl/keyhelp/pem/.
Dort lassen sich das entsprechend eben angelegte Zertifikat finden.

Code: Select all

root@demo:/etc/ssl/keyhelp/files# ls -l | grep example.org
-rw------- 1 root    root    2246 Apr 28 12:21 example.org_5721e3cb32317-ca.crt
-rw------- 1 keyhelp keyhelp 1994 Apr 28 12:19 example.org_5721e3cb32317.crt
-rw------- 1 keyhelp keyhelp 3292 Apr 28 12:19 example.org_5721e3cb32317.key

root@demo:/etc/ssl/keyhelp/pem# ls -l | grep example.org
-rw------- 1 root root 7038 Apr 28 12:20 example.org_5721e3cb32317.pem
Die so erstellten Zertifikatsdateien müssen nun durch symbolische Links auf die von Let's Encrypt verwalteten Dateien ersetzt werden:

Code: Select all

## Löschen der Zertifikate
rm /etc/ssl/keyhelp/files/example.org_5721e3cb32317-ca.crt
rm /etc/ssl/keyhelp/files/example.org_5721e3cb32317.crt
rm /etc/ssl/keyhelp/files/example.org_5721e3cb32317.key
rm /etc/ssl/keyhelp/pem/example.org_5721e3cb32317.pem

## Erstellen der Symlinks
ln -s /etc/letsencrypt/live/example.org-0001/ca.pem /etc/ssl/keyhelp/files/example.org_5721e3cb32317-ca.crt
ln -s /etc/letsencrypt/live/example.org-0001/cert.pem /etc/ssl/keyhelp/files/example.org_5721e3cb32317.crt
ln -s /etc/letsencrypt/live/example.org-0001/privkey.pem /etc/ssl/keyhelp/files/example.org_5721e3cb32317.key
ln -s /etc/letsencrypt/live/example.org-0001/fullchain.pem /etc/ssl/keyhelp/pem/example.org_5721e3cb32317.pem
(Der Anschaulichkeit halber habe ich hier mit absoluten Pfadangaben gearbeitet.)

Nachdem dies durchgeführt wurde, so fehlt nur noch der Reload des Webservers, sodass dieser auch die neuen Zertifikate nutzt:

Code: Select all

service apache2 reload
Anmerkung: Die Anleitung ist hier ohne Gewähr, da Let's Encrypt wie bereits geschrieben noch nicht von uns getestet wurde. Auch sollte entsprechende Erfahrung mit der Arbeit auf der Konsole vorhanden sein.
Viele Grüße,
Martin
mdom
Posts: 1
Joined: Fri 13. May 2016, 04:34

Re: letsencrypt / SSL Zertifikate festlegen

Post by mdom »

Hallo Martin,

ich hab das heute mal versucht. Symlinks einrichten ging, alles kein Problem.
Aber sobald ich den reload machte schmierte mir der Server ab mit folgenden Meldungen:

Code: Select all

[Fri May 13 14:08:01.753033 2016] [ssl:error] [pid 5206:tid 139720417572736] AH02203: Init: Private key not found
[Fri May 13 14:08:01.753059 2016] [ssl:error] [pid 5206:tid 139720417572736] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Fri May 13 14:08:01.753064 2016] [ssl:error] [pid 5206:tid 139720417572736] SSL Library Error: error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
[Fri May 13 14:08:01.753068 2016] [ssl:error] [pid 5206:tid 139720417572736] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Fri May 13 14:08:01.753072 2016] [ssl:error] [pid 5206:tid 139720417572736] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA)
[Fri May 13 14:08:01.753077 2016] [ssl:error] [pid 5206:tid 139720417572736] SSL Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Fri May 13 14:08:01.753081 2016] [ssl:error] [pid 5206:tid 139720417572736] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Fri May 13 14:08:01.753085 2016] [ssl:error] [pid 5206:tid 139720417572736] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=PKCS8_PRIV_KE$
 
Was für einen private-key sucht er da? Im Apache-config File (vom User) ist kein Eintrag für einen Private-key.
Liegts vielleicht daran das der symlink als User root angelegt wurde und nicht als keyhelp?
Wenn das der Fall wäre, wie kann ich die als keyhelp User anlegen? Ich kenne das pwd von keyhelp nicht und komischerweise kann ich in der shell auch nicht auf den User keyhelp switchen.
Ich möchte das pwd von keyhelp auch nicht einfach ändern, da ja anscheinend die Keyhelp-Applikation diesen User benützt.

Schöne Grüße und schon mal ein schönes Wochenende,
Mario
User avatar
Martin
Posts: 984
Joined: Wed 20. Jan 2016, 00:43

Re: letsencrypt / SSL Zertifikate festlegen

Post by Martin »

Hallo,

der Apache nutzt in seiner Konfiguration das .pem File. Dieses muss entsprechend korrekt wie folge zusammengesetzt sein:

Private-Key
Zertifikat
CA-Zertifikat
Viele Grüße,
Martin
Locked