acme.sh / Synology DS1821 / dyndnsfree.de

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8
Hallo an alle Experten,

ich komme mit acme.sh nicht mehr weiter, da ich ein "authentification failed" bekomme und ich nicht weiß an welchen Punkt das Problem liegt.
Mein Anbieter dynDNSfree.de wird von acme.sh unterstützt und habe auch seine Anpassungen in das "account.conf" und im Befehl beachtet.
Ich habe acme.sh auch als Docker installiert wie in dieser Anleitung beschrieben "https://www.christosgeo.com/2022/02/03/renew-lets-encrypt-certificates-on-synology-using-acme-sh/"

Die account.conf:
export DF_user="xxxx"
export DF_password="xxxxx"
export SYNO_Username='xxxxxx'
export SYNO_Password='xxxxxxx'
export SYNO_Certificate=""
export SYNO_Scheme="https"
export SYNO_Port="5556"
export SYNO_Hostname="localhost"

Der Befehl:

acme.sh --issue --dns dns_df -d fototour-und-technik.de -d ds1821.fototour-und-technik.de -d syncthing.fototour-und-technik.de -d smart.fototour-und-technik.de -d phpmyadmin.fototour-und-technik.de -d planka.fototour-und-technik.de

Der Fehler:
1706371370184.png

Das ist die Stelle im Log:
[Sat Jan 27 15:27:49 UTC 2024] d='fototour-und-technik.de'
[Sat Jan 27 15:27:49 UTC 2024] _d_alias
[Sat Jan 27 15:27:49 UTC 2024] txtdomain='_acme-challenge.fototour-und-technik.de'
[Sat Jan 27 15:27:49 UTC 2024] txt='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
[Sat Jan 27 15:27:49 UTC 2024] d_api='/root/.acme.sh/dnsapi/dns_df.sh'
[Sat Jan 27 15:27:49 UTC 2024] dns_entry='fototour-und-technik.de,_acme-challenge.fototour-und-technik.de,,dns_df,xxxxxxxxxxxxxxxxxxxxx,/root/.acme.sh/dnsapi/dns_df.sh'
[Sat Jan 27 15:27:49 UTC 2024] Found domain api file: /root/.acme.sh/dnsapi/dns_df.sh
[Sat Jan 27 15:27:49 UTC 2024] Adding txt value: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx for domain: _acme-challenge.fototour-und-technik.de
[Sat Jan 27 15:27:49 UTC 2024] Using DNS-01 dyndnsfree.de hook
[Sat Jan 27 15:27:49 UTC 2024] Save user and password
[Sat Jan 27 15:27:49 UTC 2024] GET
[Sat Jan 27 15:27:49 UTC 2024] url='https://dynup.de/acme.php?username=xxxx&password=xxx&hostname=fototour-und-technik.de&add_hostname=_acme-challenge.fototour-und-technik.de&txt=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
[Sat Jan 27 15:27:49 UTC 2024] timeout=
[Sat Jan 27 15:27:49 UTC 2024] Http already initialized.
[Sat Jan 27 15:27:49 UTC 2024] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g '
[Sat Jan 27 15:27:49 UTC 2024] ret='0'
[Sat Jan 27 15:27:49 UTC 2024] error Adding _acme-challenge.fototour-und-technik.de TXT: xxxxxxxxxxxxxxxxxxxxxxxxxxxx erg: error: authentification failed
[Sat Jan 27 15:27:49 UTC 2024] Error add txt for domain:_acme-challenge.fototour-und-technik.de
[Sat Jan 27 15:27:49 UTC 2024] _on_issue_err
[Sat Jan 27 15:27:49 UTC 2024] Please check log file for more details: /acme.sh/acme.sh.log

PS: Habe die Passwörter/Usernamen und die Token in irgendetwas zufälliges geändert. Daher nicht im Log wundern.

Das ist das was zu meinen Provider steht:
export DF_user="XXX"
export DF_password="XXX"
To issue a cert:
./acme.sh --issue --dns dns_df -d example.com -d *.example.com
The df_user and df_password will be saved in ~/.acme.sh/account.conf and will be reused when needed.


Der DNS Anbieter schreibt noch zusätzlich:
URL: https://dynup.de/acme.php?username=...e&add_hostname=_acme.ihredomain.de&txt=dnskey
Diese Werte werden automatisch gesetzt;

TTL = 3600
Lifetime =3600

Rückgabewerte;

success

oder

error: Fehlermeldung
 
Zuletzt bearbeitet:

Thonav

Benutzer
Sehr erfahren
Mitglied seit
16. Feb 2014
Beiträge
7.890
Punkte für Reaktionen
1.510
Punkte
274
Sind denn alle subdomains bei Deinem Domain-Hoster entsprechend eingerichtet, bzw. erreichst Du diese derzeit?
 

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8
Es sind einige öffentliche und einige lokale Domains. Erreichen tue ich in mein Netzwerk alle und mit "nslookup" haben alle Domains meine IPv4 vom Internet Provider.

Ich habe gerade nochmal bei meinen DynDNS-Provider geschaut und habe gesehen dort gibt es noch mal ein eigenen Benutzernamen und Passwort den ich für meine Domain .fototour-und-technik.de einstellen muss.

Okay mit den anderen Account ging es jetzut ein Schritt weiter:

Log:
[Sat Jan 27 16:50:13 UTC 2024] Using DNS-01 dyndnsfree.de hook
[Sat Jan 27 16:50:13 UTC 2024] Save user and password
[Sat Jan 27 16:50:13 UTC 2024] GET
[Sat Jan 27 16:50:13 UTC 2024] url='https://dynup.de/acme.php?username=xxxxx&password=xxxxx&hostname=ds1821.fototour-und-technik.de&add_hostname=_acme-challenge.ds1821.fototour-und-technik.de&txt=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
[Sat Jan 27 16:50:13 UTC 2024] timeout=
[Sat Jan 27 16:50:13 UTC 2024] Http already initialized.
[Sat Jan 27 16:50:13 UTC 2024] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g '
[Sat Jan 27 16:50:13 UTC 2024] ret='0'
[Sat Jan 27 16:50:13 UTC 2024] error Adding _acme-challenge.ds1821.fototour-und-technik.de TXT: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx erg: error: hostname not found
[Sat Jan 27 16:50:13 UTC 2024] Error add txt for domain:_acme-challenge.ds1821.fototour-und-technik.de
[Sat Jan 27 16:50:13 UTC 2024] _on_issue_err
[Sat Jan 27 16:50:13 UTC 2024] Please check log file for more details: /acme.sh/acme.sh.log
[Sat Jan 27 16:50:13 UTC 2024] start to deactivate authz

Das heißt bestimmt, weil "ds1821.fototour-und-technik.de" im Internet nicht erreichbar ist? Nur lokal?
 
Zuletzt bearbeitet:

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.734
Punkte für Reaktionen
3.717
Punkte
468
Ich würde erstmal das Zertifikat mit
Code:
acme.sh --issue --dns dns_df -d fototour-und-technik.de -d *.fototour-und-technik.de
versuchen auszustellen, damit man da nicht ständig ran muss.

Mir hat es geholfen, zunächst mal mit
Code:
acme.sh --set-default-ca --server letsencrypt
auf letsencrypt statt zerossl als Default umzustellen.
 

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8
Ich würde erstmal das Zertifikat mit
Code:
acme.sh --issue --dns dns_df -d fototour-und-technik.de -d *.fototour-und-technik.de
versuchen auszustellen, damit man da nicht ständig ran muss.

Ach ich kann auch einfach *.fototour-und-technik.de verwenden für alle SubDomains? Ich dachte ich muss jede expizit benennen. 😩

Ich habe das Problem jetzt gefunden. Da ich alle SubDomains einzeln aufgelistet habe müssen diese auch beim DynDNS Provider eingetragen sein, egal ob diese nur im Lokalen Netzwerk erreichbar sind oder nicht. Das wusste ich auch nicht.

Ich werde das nochmal Probieren mit *.fototour-und-technik.de

Mir hat es geholfen, zunächst mal mit
Code:
acme.sh --set-default-ca --server letsencrypt
auf letsencrypt statt zerossl als Default umzustellen.

Den Befehl hatte ich ganz am Anfang einmal abgesendet, das stand in der Anleitung die ich genutzt hatte.
 

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8
@Benares und @Thonav vielen Dank. Es lief durch und ich habe Zertifikate bekommen.

Es war einmal der Account. Ich wusste nicht das es für die Domain beim Provider ein Extra Account gibt, weil der Provider immer vom DynDNSfree.de Account gesprochen hat. Und wenn man einzelne SubDomains vergibt muss diese der DynDNS Provider auch kennen auch wenn diese nur im Lokalen Netzwerk exestieren. Aber am besten war der Tip mit *.fototour-und-technik.de den muss man keine Subdomains mehr angeben. Das hat mich jahre immer viel nerven gekostet.
 
  • Like
Reaktionen: Benares

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.734
Punkte für Reaktionen
3.717
Punkte
468
Noch ein kleiner Tipp: Ich musste bei den Befehlen immer auch ein "--dnssleep 600" mitgeben, damit acme.sh nach dem setzen der Challenge etwas warten, bis es die Challenge wieder prüft. Manche Provider (bei mir Netcup) sind nicht so schnell um nicht zu sagen lahmarschig.
 

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8
Noch ein kleiner Tipp: Ich musste bei den Befehlen immer auch ein "--dnssleep 600" mitgeben, damit acme.sh nach dem setzen der Challenge etwas warten, bis es die Challenge wieder prüft. Manche Provider (bei mir Netcup) sind nicht so schnell um nicht zu sagen lahmarschig.
Okay vielen Dank, werde ich noch mit ranschreiben.

Habe noch eine weitere Frage. Wenn ich das Zertifikat per Befehl:

acme.sh --deploy -d yourdomain --deploy-hook synology_dsm

In das DSM einsetzen will brauche ich ein OTP Code vom Synology Benutzeraccount. Das ist glaub ich die 2FA oder? Da es ein neuer Account nur dafür ist, gibt es da keine 2FA. Gibt es da noch ein anderen Weg das Zertifikat in das DSM zubekommen?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
15.029
Punkte für Reaktionen
5.400
Punkte
564
Wenn du keinen 2FA für den User anhast, dann das Feld leer oder weglassen
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.734
Punkte für Reaktionen
3.717
Punkte
468
Ich benutze zum Renew und zur Verteilung auf meine beiden DSen ein kleines Script, Hab's mal auf deine Belange angepasst. Vielleicht hilft dir das weiter.

Code:
acme.sh # cat acme_renew.sh                                                 
#!/bin/sh                                                                    
export DOMAIN=fototour-und-technik.de                                                 
export SYNO_Certificate="*.$DOMAIN"                                          
acme.sh --renew "$@" -d $DOMAIN -d *.$DOMAIN --dns dns_df --dnssleep 600 
status=$?                                                                    
if [ $status -eq 0 ]; then                                                   
  echo "Deploying $DOMAIN ..."                                               
  export SYNO_Hostname="DS1522"                                              
  echo "Deploying $SYNO_Certificate to $SYNO_Hostname ..."                   
  acme.sh --deploy -d $DOMAIN -d *.$DOMAIN --deploy-hook synology_dsm        
  export SYNO_Hostname="DS415"                                               
  echo "Deploying $SYNO_Certificate to $SYNO_Hostname ..."                   
  acme.sh --deploy -d $DOMAIN -d *.$DOMAIN --deploy-hook synology_dsm        
else                                                                         
  echo "Renew of $DOMAIN failed"                                             
fi
2FA nutze ich nicht. In SYNO_Certificate muss die Beschreibung des Zertifikats rein, das ersetzt werden soll. Bei mir ist das "*.fototour-und-technik.de"

Edit: So ein Script braucht man allerdings nur dann, wenn man das Zertifikat an mehrere DSen deployen muss/möchte. acme.sh merkt sich in der account.conf leider nur einen Deploy, den letzten.
 
Zuletzt bearbeitet:

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8
Ich habe es zusatzlich noch damit Probiert per Script:
docker exec ACME.sh --renew -d "fototour-und-technik.de"

[Sat Jan 27 18:10:17 UTC 2024] Your cert is in: /acme.sh/fototour-und-technik.de_ecc/fototour-und-technik.de.cer
[Sat Jan 27 18:10:17 UTC 2024] Your cert key is in: /acme.sh/fototour-und-technik.de_ecc/fototour-und-technik.de.key
[Sat Jan 27 18:10:17 UTC 2024] The intermediate CA cert is in: /acme.sh/fototour-und-technik.de_ecc/ca.cer
[Sat Jan 27 18:10:17 UTC 2024] And the full chain certs is there: /acme.sh/fototour-und-technik.de_ecc/fullchain.cer
[Sat Jan 27 18:10:17 UTC 2024] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60
[Sat Jan 27 18:10:17 UTC 2024] Loggi
ng into 192.168.178.5:5556
Enter OTP code for user 'XXXXX': Enter device name or leave empty for default (CertRenewal): [Sat Jan 27 18:10:17 UTC 2024] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60
sh: out of range
[Sat Jan 27 18:10:17 UTC 2024] Unable to authenticate to https://192.168.178.5:5556 - check your username & password.
[Sat Jan 27 18:10:17 UTC 2024] If two-factor authentication is enabled for the user, set SYNO_Device_ID.
[Sat Jan 27 18:10:17 UTC 2024] Error deploy for domain:fototour-und-technik.de
[Sat Jan 27 18:10:17 UTC 2024] Deploy error



Ich benutze zum Renew und zur Verteilung auf meine beiden DSen ein kleines Script, Hab's mal auf deine Belange angepasst. Vielleicht hilft dir da weiter.

Code:
acme.sh # cat acme_renew.sh                                                 
#!/bin/sh                                                                    
export DOMAIN=fototour-und-technik.de                                                 
export SYNO_Certificate="*.$DOMAIN"                                          
acme.sh --renew "$@" -d $DOMAIN -d *.$DOMAIN --dns dns_df --dnssleep 600 
status=$?                                                                    
if [ $status -eq 0 ]; then                                                   
  echo "Deploying $DOMAIN ..."                                               
  export SYNO_Hostname="DS1522"                                              
  echo "Deploying $SYNO_Certificate to $SYNO_Hostname ..."                   
  acme.sh --deploy -d $DOMAIN -d *.$DOMAIN --deploy-hook synology_dsm        
  export SYNO_Hostname="DS415"                                               
  echo "Deploying $SYNO_Certificate to $SYNO_Hostname ..."                   
  acme.sh --deploy -d $DOMAIN -d *.$DOMAIN --deploy-hook synology_dsm        
else                                                                         
  echo "Renew of $DOMAIN failed"                                             
fi
Oh Probiere ich mal, vielen Dank :D

Dein Script lief leider auch noch nicht. Ich hatte noch 1-2 Stellen angepasst. (Auf eine NAS und den Host namen geändert) Leider bekomme ich bei deinen Script keine E-Mail vom Aufgaben Manager.

acme.sh # cat acme_renew.sh
#!/bin/sh
export DOMAIN=fototour-und-technik.de
export SYNO_Certificate="*.$DOMAIN"
acme.sh --renew "$@" -d $DOMAIN -d *.$DOMAIN --dns dns_df --dnssleep 600
status=$?
if [ $status -eq 0 ]; then
echo "Deploying $DOMAIN ..."
export SYNO_Hostname="192.168.178.5"
echo "Deploying $SYNO_Certificate to $SYNO_Hostname ..."
acme.sh --deploy -d $DOMAIN -d *.$DOMAIN --deploy-hook synology_dsm
else
echo "Renew of $DOMAIN failed"
fi
 
Zuletzt bearbeitet:

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8
Ich glaube ich habe etwas gefunden.

export SYNO_Device_ID="" - required for skipping 2FA-OTP, set via script upon first run

Das habe ich nicht angegeben, aber was ist die Device_ID?
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.734
Punkte für Reaktionen
3.717
Punkte
468
Keine Ahnung, nutze ich nicht. Einfach mal einlesen und berichten.
 

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
15.029
Punkte für Reaktionen
5.400
Punkte
564
Ich nutze auf 2 DSen acme.sh problemlos für netcup Domains mit 7.2. Allerdings als Docker-Container.
 

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8
Ich nutze auf 2 DSen acme.sh problemlos für netcup Domains mit 7.2. Allerdings als Docker-Container.
Nutze es auch als Docker Container. Ist den euer account.conf anders? Oder nutzt ihr andere Befehle?

meine account.conf:
export SYNO_Username='username'
export SYNO_Password='rpassword'
export SYNO_Certificate="acme.sh certificate"
export SYNO_Scheme="https"
export SYNO_Port="5556"
export SYNO_Hostname="127.0.0.1"
# export SYNO_Device_Name="CertRenewal"
# export SYNO_Device_ID="DS1821"
# export SYNO_Create=1

AUTO_UPGRADE='1'
DEFAULT_ACME_SERVER='https://acme-v02.api.letsencrypt.org/directory'
SAVED_DF_user='username'
SAVED_DF_password='password'
USER_PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
UPGRADE_HASH='xxxxxxxxxxxxxxxxxxx

Den Befehl nutze ich über den Terminal vom Docker:
acme.sh --deploy -d yourdomain --deploy-hook synology_dsm

Und den Befehl über den Aufgabenplaner als Script:
docker exec ACME.sh --renew -d "fototour-und-technik.de"

Beides bringt immer die gleichen Ergebnisse.
Das Script vom @Benares ging leider auch nicht, aber ich habe auch keine Rückantwort als E-Mail bekommen.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
15.029
Punkte für Reaktionen
5.400
Punkte
564
Meine sieht so aus:
Code:
export NC_Apikey="KEY"
export NC_Apipw="PW"
export NC_CID="ID"
export SYNO_Username="DS_USERNAME"
export SYNO_Password="DS_PW"
export SYNO_Port="5000"
export SYNO_Hostname="127.0.0.1"
export SYNO_Scheme="http"
export SYNO_Create="1"
export SYNO_Certificate="Let's Encrypt"
AUTO_UPGRADE='1'
Die ersten 3 Zeilen musst du halt je nach Anbieter anpassen
EDIT: Der Container läuft bei mir im Host-Network
 

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8
Meine sieht so aus:
Code:
export NC_Apikey="KEY"
export NC_Apipw="PW"
export NC_CID="ID"
export SYNO_Username="DS_USERNAME"
export SYNO_Password="DS_PW"
export SYNO_Port="5000"
export SYNO_Hostname="127.0.0.1"
export SYNO_Scheme="http"
export SYNO_Create="1"
export SYNO_Certificate="Let's Encrypt"
AUTO_UPGRADE='1'
Die ersten 3 Zeilen musst du halt je nach Anbieter anpassen
EDIT: Der Container läuft bei mir im Host-Network

Oh das war wieder ein passender Brotkruben. Mit "http" statt "https" bin ich weiter gekommen.

/ # acme.sh --deploy -d fototour-und-technik.de --deploy-hook synology_dsm
[Sat Jan 27 19:56:37 UTC 2024] The domain 'fototour-und-technik.de' seems to have
a ECC cert already, lets use ecc cert.
[Sat Jan 27 19:56:37 UTC 2024] Logging into 127.0.0.1:5555
Enter OTP code for user 'User':
Enter device name or leave empty for default (CertRenewal):
[Sat Jan 27 19:57:06 UTC 2024] Getting certificates in Synology DSM
[Sat Jan 27 19:57:06 UTC 2024] Unable to find certificate: acme.sh certificate &
$SYNO_Create is not set
[Sat Jan 27 19:57:06 UTC 2024] Error deploy for domain:fototour-und-technik.de
[Sat Jan 27 19:57:06 UTC 2024] Deploy error.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
15.029
Punkte für Reaktionen
5.400
Punkte
564
Setz mal noch die Zeile export SYNO_Create="1"
Dann dürfte es klappen
 

Raychan

Benutzer
Mitglied seit
06. Mrz 2013
Beiträge
51
Punkte für Reaktionen
2
Punkte
8
Wie schön ist es auf der Kommandozeile das Wort "Success" zu sehen :D

Vielen vielen Dank euch allen :D

Es lag am Ende am export SYNO_Create="1" und am http statt https

1706386021319.png

Wünsche euch noch ein schönes Wochenende :)
 
  • Like
Reaktionen: Benares


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat