# Let´s Encrypt - Symlinks zum ssl Verzeichnis falsch?



## bon (23. Jan. 2017)

Hallo,
mir ist bei mehreren Servern aufgefallen das LE -Certs mit folgendem Symlink eingebunden werden:
domain.de.bundle -> ../../../../../../etc/letsencrypt/archive/domain.de/chain1.pem
usw.

Wenn jedoch nach 3 Monaten das Cert erneuert wird, bleibt der Symlink und es kommt zu einer Fehlermeldung!
Wäre es nicht richtig den Symlink auf:
domain.de.bundle -> ../../../../../../etc/letsencrypt/*live*/domain.de/chain.pem
zu setzen, weil dieser Symlink immer auf das richtige Cert zeigt?

Welche Erfahrungen habt ihr?


----------



## Till (23. Jan. 2017)

Aktuelle ISPConfig Versionen (3.1.1 und 3.1.1p1) erstellen einen Symlink der auf die Live Version zeigt (siehe quellcode). Vermutlich wurde das Cert bei Dir mit 3.1.0 erstellt, die Version hatte da einen Bug.


----------



## bon (23. Jan. 2017)

Hallo Till,
leider nicht, ich habe eine aktuelle Version:
>There are no updates available for ISPConfig 3.1.1p1
aber dennoch werden die Symlinks falsch gesetzt. Wo oder in welcher Datei wird das den vorgegeben?


----------



## bon (23. Jan. 2017)

$ grep -R -l "/etc/letsencrypt" ./
./server/plugins-available/apache2_plugin.inc.php
./server/plugins-available/nginx_plugin.inc.php
./server/plugins-enabled/apache2_plugin.inc.php
ok, hier drinnen steht:
$crt_tmp_file = "/etc/letsencrypt/live/".$domain."/cert.pem";
$key_tmp_file = "/etc/letsencrypt/live/".$domain."/privkey.pem";
$bundle_tmp_file = "/etc/letsencrypt/live/".$domain."/chain.pem";

aber woher nimmt er dann den alten falschen Pfad?


----------



## Till (23. Jan. 2017)

Ich denke mal das Problem ist dass er ihn nicht neu setzt, wenn er erst einmal falsch ist. Ich ändere da mal was am Code und submitte es nachher in den stable-3.1 branch. Mit der Änderung müsste man zumindest durch deaktivieren von le und dann wieder aktivieren das problem korrigieren können, denn aktuell würde selbst das nicht reichen um die symlinks zu ändern, denn sobald der link da ist macht ispconfig nichts.


----------



## bon (23. Jan. 2017)

Ja genau, deaktivieren von SSL und LE-SSL und anschließendes aktivieren, ändert am falschen Symlink nichts. Besten Dank schonmal


----------



## Till (24. Jan. 2017)

Hat ein wenig länger gedauert, aber jetzt ist die neue Version im stable-3.1 branch vom git.


----------



## bon (25. Jan. 2017)

Hi Till,
also hier:
https://git.ispconfig.org/ispconfig/ispconfig3/commits/stable-3.1
finde ich nix oder ??


----------



## Till (25. Jan. 2017)

Genau, das ist der 3.1 stable branch und das hier ist der commit mit den Änderungen:

https://git.ispconfig.org/ispconfig/ispconfig3/commit/eb594665f2f653c583f2e6023480c62629264bf7

Und im .com Forum hat ein User ein kleines shellscript gepostet, mit dem man bestehende Links auch direkt ändern kann:

https://www.howtoforge.com/communit...ed-symlink-archive-vs-live.75338/#post-354835


----------



## bon (25. Jan. 2017)

Also ich habe deine Änderung eingespielt auf einem 3.1.1p1. Es geht noch immer nicht. Wenn ich SSL & LE-SSL deaktiviere belässt er die Symlinks, ok das macht nix aber wenn ich es wieder aktiviere benennt er die bestehenden Symlinks um in ".old.datum" und legt wieder die falschen Symlinks mit /archive/ an?

https://git.ispconfig.org/ispconfig...rver/plugins-available/apache2_plugin.inc.php
Diese Datei habe ich benutzt.


----------



## Till (25. Jan. 2017)

Hmm, verstehe ich nicht. Denn das Wort archive steht ja nirgends mehr im code in den pfaden, da steht nur noch live, ich wüsste nicht wie da noch was auf archive zeigen kann und bei meinem Test gestern mit stable-3.1 zeigte es auch auf live.

von meinem Test gestern:

root@server:/var/www/domain.tld/ssl# ll -a 
total 44 
drwxr-xr-x 2 root root 4096 Jan 24 15:52 . 
drwxr-xr-x 9 root root 4096 Dez 27  2014 .. 
lrwxrwxrwx 1 root root   43 Feb 11  2016 domain.tld.bundle -> /etc/letsencrypt/live/domain.tld/chain.pem 
-r-------- 1 root root 1675 Dez 16  2015 domain.tld.bundle.old.20151216154901 
-r-------- 1 root root 1675 Feb 11  2016 domain.tld.bundle.old.20160211141258 
lrwxrwxrwx 1 root root   42 Feb 11  2016 domain.tld.crt -> /etc/letsencrypt/live/domain.tld/cert.pem 
-r-------- 1 root root 2155 Dez 16  2015 domain.tld.crt.old.20151216154901 
-r-------- 1 root root 2155 Feb 11  2016 domain.tld.crt.old.20160211141258 
lrwxrwxrwx 1 root root   45 Feb 11  2016 domain.tld.key -> /etc/letsencrypt/live/domain.tld/privkey.pem 
-rw-r--r-- 1 root root 3272 Dez 16  2015 domain.tld.key.old20151216154901 
-rw-r--r-- 1 root root 3272 Feb 11  2016 domain.tld.key.old20160211141258 
lrwxrwxrwx 1 root root   43 Jan 24 15:52 domain.tld-le.bundle -> /etc/letsencrypt/live/domain.tld/chain.pem 
-r-------- 1 root root 1647 Jan 24 15:52 domain.tld-le.bundle.old.20170124155236 
lrwxrwxrwx 1 root root   42 Jan 24 15:52 domain.tld-le.crt -> /etc/letsencrypt/live/domain.tld/cert.pem 
-r-------- 1 root root 2155 Jan 24 15:52 domain.tld-le.crt.old.20170124155236 
lrwxrwxrwx 1 root root   45 Jan 24 15:52 domain.tld-le.key -> /etc/letsencrypt/live/domain.tld/privkey.pem 
-r-------- 1 root root 3272 Jan 24 15:52 domain.tld-le.key.old.20170124155236


----------



## bon (25. Jan. 2017)

Ganz ganz komisch, ich habe ein Cert nun revoked, dann deleted - voher SSL und LE-SSL deaktiviert. Anschließend Server rebootet, als Benutzer angemeldet, SSL und LE-SSL aktiviert und wieder hat er die falschen Symlinks gesetzt obwohl der Pfad ja auch laut GREP in /usr/local/ispconfig  nirgends zu finden ist!!! Werden die Symlinks tatsächlich durch "apache2_plugin.inc.php" erstellt?


----------



## Till (25. Jan. 2017)

Wenn Du apache hast, dann ja. Ansonsten im nginx plugin, wenn Du nginx hast. Sind aber beide unter /usr/local/ispconfig/ zu finden.


----------



## bon (25. Jan. 2017)

Er macht sowieso komische Symlinks:

```
lrwxrwxrwx 1 root root   76 Jan 25 16:53 domain.com-le.bundle -> ../../../../../../etc/letsencrypt/archive/domain.com/chain1.pem
lrwxrwxrwx 1 root root   75 Jan 25 16:53 domain.com-le.crt -> ../../../../../../etc/letsencrypt/archive/domain.com/cert1.pem
lrwxrwxrwx 1 root root   78 Jan 25 16:53 domain.com-le.key -> ../../../../../../etc/letsencrypt/archive/domain.com/privkey1.pem
```
Ob es was damit zu tun hat das es sich um eine OpenVZ Node handelt?


----------



## Till (25. Jan. 2017)

Hmm, oder hast Du relative symlinks option an unter System > server config > web?


----------



## bon (26. Jan. 2017)

Ja, ich habe rel. Symlinks an!


----------



## Till (26. Jan. 2017)

Dann liegt es daran, denn die relative symlink Funktion muss den endgültigen pfad einer Datei mittels realpath() bestimmen und da LE intern (also nicht ispconfig) selbst von live auf die archivdatei verlinkt, löst die relative symlinks Funktion auch auf die archivdatei auf. Muss ich mal sehen wie sich das am besten ändern lässt.


----------



## Till (26. Jan. 2017)

versuch mal im apache plugin zeile 3424 folgendes einzufügen:

if(strstr($to,'/etc/letsencrypt/archive/')) $to = str_replace('/etc/letsencrypt/archive/','/etc/letsencrypt/live/',$to);


----------



## bon (26. Jan. 2017)

Die Datei hat nur 2984 Zeilen?


----------



## Till (26. Jan. 2017)

Bist Du sicher? Die im GIT hat mehr Zeilen. Ich habe Dir mal die zeile markiert:

https://git.ispconfig.org/ispconfig...lugins-available/apache2_plugin.inc.php#L3424


----------



## bon (26. Jan. 2017)

Sicher das die Zeile über
"private function get_seo_redirects" stehen soll?


----------



## Till (30. Jan. 2017)

Click mal auf die Zeilennummern, dann wird die richtige Zeile farbig markiert. Das stimmt von der Höhe nicht mit den nummern links überein. Oder nimm halt einen beliebigen Editor Deiner Wahl der Zeilennummern hat.


----------



## bon (30. Jan. 2017)

OK, leider geht es nicht...


----------



## Till (30. Jan. 2017)

Die Zeile ist inzwischen im stable-3.1 GIT branch drin.


----------



## harkman (6. Nov. 2017)

Server: (Debian Wheezy/Sid) ISPConfig 3.1.7p1
Habe das Problem auch mit der aktuellen Version und NGiNX. Ich hatte auch das Setting mit den relativen Symlinks an. Habe das jetzt aus geschaltet und die Pfade passen jetzt, nachdem man LE-SSL aus und wieder an schaltet.


----------

