Shell-Skript: Fehlermeldung mit iconv

Status
Für weitere Antworten geschlossen.

Specter

Benutzer
Mitglied seit
09. Mrz 2016
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Hi Leute,
wie der Titel verrät habe ich Schwierigkeiten mit einem Shell-Skript, welches ich gerne ausführen lassen möchte. Vorab die Info: Ich bin bei weitem kein Experte was solche Skripte betrifft und habe nur bedingt Erfahrungen sammeln können.
Das Skript heißt fritzbox-vert-update.sh - Ziel dieses Skripts soll es sein, das von Letsencrypt erstellte Zertifikat (in drei Teile unterteilt), in eine *.cert-Datei zu konvertieren und auf die Fritzbox zu laden.

Das Skript sieht wie folgt aus (Quelle):

PHP:
#!/bin/bash

# parameters
USERNAME="maybe empty"
PASSWORD="fritzbox-password"
CERTPATH="path to cert eg  /etc/letsencrypt/live/domain.tld/"
CERTPASSWORD="cert password if needed"
HOST=http://fritz.box

# make and secure a temporary file
TMP="$(mktemp -t XXXXXX)"
chmod 600 $TMP

# login to the box and get a valid SID
CHALLENGE=`wget -q -O - $HOST/login_sid.lua | sed -e 's/^.*<Challenge>//' -e 's/<\/Challenge>.*$//'`
HASH="`echo -n $CHALLENGE-$PASSWORD | iconv -f ASCII -t UTF16LE |md5sum|awk '{print $1}'`"
SID=`wget -q -O - "$HOST/login_sid.lua?sid=0000000000000000&username=$USERNAME&response=$CHALLENGE-$HASH"| sed -e 's/^.*<SID>//' -e 's/<\/SID>.*$//'`

# generate our upload request
BOUNDARY="---------------------------"`date +%Y%m%d%H%M%S`
printf -- "--$BOUNDARY\r\n" >> $TMP
printf "Content-Disposition: form-data; name=\"sid\"\r\n\r\n$SID\r\n" >> $TMP
printf -- "--$BOUNDARY\r\n" >> $TMP
printf "Content-Disposition: form-data; name=\"BoxCertPassword\"\r\n\r\n$CERTPASSWORD\r\n" >> $TMP
printf -- "--$BOUNDARY\r\n" >> $TMP
printf "Content-Disposition: form-data; name=\"BoxCertImportFile\"; filename=\"BoxCert.pem\"\r\n" >> $TMP
printf "Content-Type: application/octet-stream\r\n\r\n" >> $TMP
cat $CERTPATH/privkey.pem >> $TMP
cat $CERTPATH/fullchain.pem >> $TMP
printf "\r\n" >> $TMP
printf -- "--$BOUNDARY--" >> $TMP

# upload the certificate to the box
wget -q -O - $HOST/cgi-bin/firmwarecfg --header="Content-type: multipart/form-data boundary=$BOUNDARY" --post-file $TMP | grep SSL

# clean up
rm -f $TMP

Wenn ich jetzt das Skript in Bash bzw. in der Shell starte, erhalte ich jedes mal die folgende Fehlermeldung:
Rich (BBCode):
bash-4.4# fritzbox-cert-update.sh
/bin/fritzbox-cert-update.sh: line 17: /opt/bin/iconv: No such file or directory

Ich vermutete irgendeinen Fehler in besagtem iconv und habe iconv so gestartet, mit ähnlicher Fehlermeldung:

Rich (BBCode):
-bash: /opt/bin/iconv: No such file or directory
Nun stoße ich jedoch an meine Grenzen, den Fehler weiterhin zu beheben. Ich hoffe, ihr könnt mir weiterhelfen :eek:
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
iconv ist auf der DS normalerweise nicht dabei . Die folgende Zeile sollte den gleichen Zweck erfüllen, dabei peinlich genau auf die unterschiedlichen Hochkommata achten (ungetestet).
Code:
HASH=`echo -n $CHALLENGE-$PASSWORD | perl -p -e 'use Encode qw/encode/; print encode("UTF-16LE","$_"); $_="";' |md5sum|awk '{print $1}'`
 

Specter

Benutzer
Mitglied seit
09. Mrz 2016
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Danke für die Hilfe! :) Das Skript lief, alsbald ich es in den /usr/bin-Ordner verschoben hatte. Zumindest ich das so beurteilen kann, es kamen immerhin keine Fehlermeldungen. Jedoch ohne den gewünschten Erfolg. Das Zertifikat auf der FritzBox blieb dasselbe wie zuvor. Heißt für mich, dass der Fehler irgendwo bei der Fritzbox oder im Skript zu suchen ist. Jedoch wird mir das zu viel Aufwand, nur um das Zertifikat auf die FritzBox zu bekommen.
 

efzwo

Benutzer
Mitglied seit
09. Jan 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Ich hatte das gleiche Problem, danke @Tommi2day für die Hilfe. Bei mir funktioniert das Skript nun einwandfrei. In der Fritzbox-Oberfläche sieht man unter Internet->Freigaben->Fritzbox-Dienste sofort, dass das Zertifikat ausgetauscht wurde. Chrome/Firefox brauchten bei mir einen Neustart, um das neue Zertifikat zu erkennen.

Ich kopiere die Let's Encrypt-Zertifikate aus dem Ordner vom VPN-Server. Wichtig scheint die richtige Reihenfolge der Zertifikate zu sein. Hier meine Änderungen am o. g. Skript:
Rich (BBCode):
CERTPATH="/var/packages/VPNCenter/target/etc/openvpn/keys/"
Rich (BBCode):
cat $CERTPATH/server.crt >> $TMP
cat $CERTPATH/ca.crt >> $TMP
cat $CERTPATH/server.key >> $TMP

Und zum Debuggen bei wget das -q weglassen.
 

Specter

Benutzer
Mitglied seit
09. Mrz 2016
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Wunderbar, es klappt endlich :) Hatte tatsächlich vergessen, eine Zertifikatsdatei mit einzubinden. Diese nun mit eingebunden und in der richtigen Reihenfolge und das ganze läuft wie geschmiert :) Danke für eure Unterstützung!
 

Burny92

Benutzer
Mitglied seit
13. Aug 2017
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Hey Leute, ich hoffe, es ist nicht allzu schlimm, wenn ich dieses Thema wieder aufnehme. Ich möchte genau das selbe erledigen, jedoch greife ich die Zertifikate direkt vom Syno ab, also aus dem Pfad:
Rich (BBCode):
/usr/syno/etc/certificate/_archive/[Zertifikatsordner]/

Ich bekomme bei der Ausführung folgende Fehlermeldungen (Scriptausführung als root):
Rich (BBCode):
chmod: cannot access ‘/tmp/0kgSYM\r\r’: No such file or directory
/privkey.pem: No such file or directory/bgoZ1D/
/fullchain.pem: No such file or directorygoZ1D/

Leider bin auch ich nicht der große Programmierer, und weiß daher aktuell nicht weiter. Woran genau scheitert es denn dort?
Vielleicht kann mir ja jemand bei der Analyse weiterhelfen.

Mit freundlichen Grüßen, Burny92 :)
 

Burny92

Benutzer
Mitglied seit
13. Aug 2017
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Hey Leute, habe nun mal weiter probiert, aber laufen tut es leider noch immer nicht. Diesmal aber im Debug Modus ein paar mehr Informationen rausgekitzelt, vielleicht kann damit mehr anfangen:
Rich (BBCode):
chmod: cannot access ‘/tmp/YhPdbO\r\r’: No such file or directory
--2018-02-01 15:01:14--  http://fritz.box/%0D/login_sid.lua
Resolving fritz.box... 192.168.178.1
Connecting to fritz.box|192.168.178.1|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-02-01 15:01:14 ERROR 404: Not Found.

--2018-02-01 15:01:14--  http://fritz.box/%0D/login_sid.lua?sid=0000000000000000&username=%0D&response=%0D-2f8c96f1979711e78c8d8fbee5301ac7%0D
Resolving fritz.box... 192.168.178.1
Connecting to fritz.box|192.168.178.1|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-02-01 15:01:14 ERROR 404: Not Found.

/server.crt: No such file or directoryc/openvpn/keys/
/ca.crt: No such file or directoryt/etc/openvpn/keys/
/server.key: No such file or directoryc/openvpn/keys/
--2018-02-01 15:01:14--  http://fritz.box/%0D/cgi-bin/firmwarecfg
BODY data file '/tmp/YhPdbO\r' missing: No such file or directory

Und hier das Script, wie ich es derzeit versuche (lediglich das Passwort entfernt):
Rich (BBCode):
USERNAME=""
PASSWORD=""
CERTPATH="/var/packages/VPNCenter/target/etc/openvpn/keys/"
CERTPASSWORD=""
HOST=http://fritz.box/
TMP="$(mktemp -t XXXXXX)"
chmod 600 $TMP
CHALLENGE=`wget -O - $HOST/login_sid.lua | sed -e 's/^.*<Challenge>//' -e 's/<\/Challenge>.*$//'`
HASH=`echo -n $CHALLENGE-$PASSWORD | perl -p -e 'use Encode qw/encode/; print encode("UTF-16LE","$_"); $_="";' |md5sum|awk '{print $1}'`
SID=`wget -O - "$HOST/login_sid.lua?sid=0000000000000000&username=$USERNAME&response=$CHALLENGE-$HASH"| sed -e 's/^.*<SID>//' -e 's/<\/SID>.*$//'`
BOUNDARY="---------------------------"`date +%Y%m%d%H%M%S`
printf -- "--$BOUNDARY\r\n" >> $TMP
printf "Content-Disposition: form-data; name=\"sid\"\r\n\r\n$SID\r\n" >> $TMP
printf -- "--$BOUNDARY\r\n" >> $TMP
printf "Content-Disposition: form-data; name=\"BoxCertPassword\"\r\n\r\n$CERTPASSWORD\r\n" >> $TMP
printf -- "--$BOUNDARY\r\n" >> $TMP
printf "Content-Disposition: form-data; name=\"BoxCertImportFile\"; filename=\"BoxCert.pem\"\r\n" >> $TMP
printf "Content-Type: application/octet-stream\r\n\r\n" >> $TMP
cat $CERTPATH/server.crt >> $TMP
cat $CERTPATH/ca.crt >> $TMP
cat $CERTPATH/server.key >> $TMP
printf "\r\n" >> $TMP
printf -- "--$BOUNDARY--" >> $TMP
wget -O - $HOST/cgi-bin/firmwarecfg --header="Content-type: multipart/form-data boundary=$BOUNDARY" --post-file $TMP | grep SSL
rm -f $TMP

Vielleicht kann ja auch mal jemand sein angepasstes Script hier zur Verfügung stellen, vielleicht mache ich ja irgendwas grundlegend falsch :confused:
Danke schon mal soweit.
 

efzwo

Benutzer
Mitglied seit
09. Jan 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Kann es sein, dass du einen Fritzbox-Benutzer angeben musst oder die Berechtigungen nicht stimmen? Wenn der User der Fritzbox nicht berechtigt ist, das Zertifikat zu setzen (Berechtigung für FRITZ!Box Einstellungen), bekomme ich auch Status 200 OK, aber ohne die Bestätigung "Das SSL-Zertifikat wurde erfolgreich importiert.". Funktioniert bei mir mit Fritzbox 7390 und 7590 mit jeweils aktuellem FRITZ!OS. Ich habe in den Boxen jeweils unter System/FRITZ!Box-Benutzer/Anmeldung im Heimnetz die Option "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" aktiviert.

Hier mal mein komplettes aktuelles Skript:
PHP:
#!/bin/bash

# parameters
USERNAME="cert-update"
PASSWORD="cert-update-password"
CERTPATH="/var/packages/VPNCenter/target/etc/openvpn/keys/"
CERTPASSWORD=""
HOST=http://fritz.box

# make and secure a temporary file
TMP="$(mktemp -t XXXXXX)"
chmod 600 $TMP

# login to the box and get a valid SID
CHALLENGE=`wget -q -O - $HOST/login_sid.lua | sed -e 's/^.*<Challenge>//' -e 's/<\/Challenge>.*$//'`
HASH=`echo -n $CHALLENGE-$PASSWORD | perl -p -e 'use Encode qw/encode/; print encode("UTF-16LE","$_"); $_="";' |md5sum|awk '{print $1}'`
SID=`wget -O - "$HOST/login_sid.lua?sid=0000000000000000&username=$USERNAME&response=$CHALLENGE-$HASH"| sed -e 's/^.*<SID>//' -e 's/<\/SID>.*$//'`

# generate our upload request
BOUNDARY="---------------------------"`date +%Y%m%d%H%M%S`
printf -- "--$BOUNDARY\r\n" >> $TMP
printf "Content-Disposition: form-data; name=\"sid\"\r\n\r\n$SID\r\n" >> $TMP
printf -- "--$BOUNDARY\r\n" >> $TMP
printf "Content-Disposition: form-data; name=\"BoxCertPassword\"\r\n\r\n$CERTPASSWORD\r\n" >> $TMP
printf -- "--$BOUNDARY\r\n" >> $TMP
printf "Content-Disposition: form-data; name=\"BoxCertImportFile\"; filename=\"BoxCert.pem\"\r\n" >> $TMP
printf "Content-Type: application/octet-stream\r\n\r\n" >> $TMP
cat $CERTPATH/server.crt >> $TMP
cat $CERTPATH/ca.crt >> $TMP
cat $CERTPATH/server.key >> $TMP
printf "\r\n" >> $TMP
printf -- "--$BOUNDARY--" >> $TMP

# upload the certificate to the box
wget -q -O - $HOST/cgi-bin/firmwarecfg --header="Content-type: multipart/form-data boundary=$BOUNDARY" --post-file $TMP | grep SSL

# clean up
rm -f $TMP

Aufruf als root, Output:
Rich (BBCode):
$ sudo ./fritzbox-cert-update.sh
--2018-02-09 14:09:23--  http://fritz.box/login_sid.lua?sid=0000000000000000&username=cert-update&response=1425e304-dcee0ba891d2b8f1f2e25f7a9339837d
Resolving fritz.box... 192.168.75.1
Connecting to fritz.box|192.168.75.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/xml]
Saving to: 'STDOUT'

    [ <=>                                                                                                                             ] 348         --.-K/s   in 0s

2018-02-09 14:09:23 (7.45 MB/s) - written to stdout [348]

Das SSL-Zertifikat wurde erfolgreich importiert.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Das ist aber eine feine Sache. Gleich mal umgesetzt :)

Ich habe das Skript so erweitert, dass es das Zertifikat nicht vom VPN-Server, sondern das passende Zertifikat aus dem Archiv-Ordner holt. Dazu muss als Parameter die gewünschte Domain mit eingetragen werden.

Rich (BBCode):
#!/bin/bash 
    
# Parameter 
DOMAIN="LEdomain.de"
USERNAME="fritzuser" 
PASSWORD="password" 
HOST=http://fritz.box 
CERTPASSWORD=""


########## ab hier nichts mehr ändern ########## 
    skriptuser=`whoami`
    if [ ${skriptuser} != "root" ]; then
        echo "Dieses Skript muss von Root ausgeführt werden!"
        exit 1
    fi

# den passenden Zertifikatsordner suchen:
    for domain_cert in /usr/syno/etc/certificate/_archive/*; do
        if [ -d ${domain_cert} ] && [ -f ${domain_cert}/cert.pem ];then
            openssl x509 -in ${domain_cert}/cert.pem -text | grep DNS:${DOMAIN} > /dev/null 2>&1
            domain_found=$?
            if [ "${domain_found}" = "0" ]; then
                CERTPATH=${domain_cert}
                echo "Zertifikat für $DOMAIN liegt hier: $CERTPATH"
            fi
        fi
    done

# make and secure a temporary file 
    TMP="$(mktemp -t XXXXXX)" 
    chmod 600 $TMP 

# login to the box and get a valid SID 
    CHALLENGE=`wget -q -O - $HOST/login_sid.lua | sed -e 's/^.*<Challenge>//' -e 's/<\/Challenge>.*$//'` 
    HASH=`echo -n $CHALLENGE-$PASSWORD | perl -p -e 'use Encode qw/encode/; print encode("UTF-16LE","$_"); $_="";' |md5sum|awk '{print $1}'`
    SID=`wget -O - "$HOST/login_sid.lua?sid=0000000000000000&username=$USERNAME&response=$CHALLENGE-$HASH"| sed -e 's/^.*<SID>//' -e 's/<\/SID>.*$//'` 

# generate our upload request 
    BOUNDARY="---------------------------"`date +%Y%m%d%H%M%S` 
    printf -- "--$BOUNDARY\r\n" >> $TMP 
    printf "Content-Disposition: form-data; name=\"sid\"\r\n\r\n$SID\r\n" >> $TMP 
    printf -- "--$BOUNDARY\r\n" >> $TMP 
    printf "Content-Disposition: form-data; name=\"BoxCertPassword\"\r\n\r\n$CERTPASSWORD\r\n" >> $TMP 
    printf -- "--$BOUNDARY\r\n" >> $TMP 
    printf "Content-Disposition: form-data; name=\"BoxCertImportFile\"; filename=\"BoxCert.pem\"\r\n" >> $TMP 
    printf "Content-Type: application/octet-stream\r\n\r\n" >> $TMP 
    cat $CERTPATH/cert.pem >> $TMP 
    cat $CERTPATH/chain.pem >> $TMP 
    cat $CERTPATH/privkey.pem >> $TMP 
    printf "\r\n" >> $TMP 
    printf -- "--$BOUNDARY--" >> $TMP 

# upload the certificate to the box 
    echo "übertrage Zertifikat zur Fritz!Box"
    wget -q -O - $HOST/cgi-bin/firmwarecfg --header="Content-type: multipart/form-data boundary=$BOUNDARY" --post-file $TMP | grep SSL 

# clean up 
    rm -f $TMP  

exit 0
 
Zuletzt bearbeitet:

Burny92

Benutzer
Mitglied seit
13. Aug 2017
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für eure Antworten Leute :)
Die Option "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" habe ich nun aktiviert, dennoch klappt es nicht. Langsam glaube ich, mir fehlt irgendein installiertes Paket oder was auch immer.
Beispielsweise habt ihr Leerzeilen im Script, das mag meine DS gar nicht (
Rich (BBCode):
/test.sh: line 2: $'\r': command not found
). Auch muss ich zum Beispiel noch ein "/" hinter fritz.box setzen, damit die Auflösung überhaupt erst funktioniert.
Schon doof, wenn man selber keine Ahnung hat :D

Hier der Output von efzwo's Script (Leerzeichen entfernt, -q bei wget entfernt):
Rich (BBCode):
 sudo bash efzwo.sh
chmod: cannot access ‘/tmp/cJDjoi\r\r’: No such file or directory
--2018-02-12 08:58:23--  http://fritz.box/%0D/login_sid.lua
Resolving fritz.box... 192.168.178.1
Connecting to fritz.box|192.168.178.1|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-02-12 08:58:23 ERROR 404: Not Found.

--2018-02-12 08:58:23--  http://fritz.box/%0D/login_sid.lua?sid=0000000000000000&username=admin%0D&response=%0D-2f8c96f1979711e78c8d8fbee5301ac7%0D
Resolving fritz.box... 192.168.178.1
Connecting to fritz.box|192.168.178.1|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-02-12 08:58:23 ERROR 404: Not Found.

/server.crt: No such file or directoryc/openvpn/keys/
/ca.crt: No such file or directoryt/etc/openvpn/keys/
/server.key: No such file or directoryc/openvpn/keys/
--2018-02-12 08:58:23--  http://fritz.box/%0D/cgi-bin/firmwarecfg
BODY data file '/tmp/cJDjoi\r' missing: No such file or directory

Und hier der Output von geimist's Script (Leerzeichen entfernt, -q bei wget entfernt):
Rich (BBCode):
 sudo bash fbcert.sh
fbcert.sh: line 4: $'\r': command not found
fbcert.sh: line 5: $'\r': command not found
fbcert.sh: line 15: syntax error near unexpected token `$'do\r''
'bcert.sh: line 15: `    for domain_cert in /usr/syno/etc/certificate/_archive/*; do

Keine Ahnung, warum er da bereits bei den Variablen meckert. 4 und 5 Sind Username und Passwort, beides gesetzt in Anführungszeichen.
Line 15 ist in dem Fall diese Zeile:
Rich (BBCode):
   for domain_cert in /usr/syno/etc/certificate/_archive/*; do

Langsam verzweifel ich hier damit :(

PS: Es hier um meine Ds416play mt aktuellem DMS (6.1.5), und einer Fritz!Box 7490 mit aktuellem OS (06.93).
 
Zuletzt bearbeitet:

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
Du hast das Script mit Windows-Zeilenende erstellt ("\r\n"), das mag Unix nicht. Du kannst es z.B. in Notepad++ ganz easy in Windows auch mit Unix Zeilenende erstellen oder bei der Übertragung mit winscp als "Text" übertragen, dann konvertiert winscp auch gleich. Oder direkt das Script auf der DS mit vi erstellen.
 

Burny92

Benutzer
Mitglied seit
13. Aug 2017
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Vielen, vielen Dank für die Hilfe bisher, so klappt es nun!
Allerdings möchte ich gerne das Script von geimist verwenden, und bekomme nun folgenden Fehler:
Rich (BBCode):
 ./fbcertupdate.sh                    Zertifikat für [meineDynDNS-Adresse] liegt hier: /usr/syno/etc/certificate/_archive/bgoZ1D
--2018-02-12 11:42:06--  http://fritz.box/login_sid.lua?sid=0000000000000000&username=admin&response=-92a1a1e589e46d7a792de1df6ca22304
Resolving fritz.box... 192.168.178.1
Connecting to fritz.box|192.168.178.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/xml]
Saving to: 'STDOUT'

    [ <=>                                   ] 165         --.-K/s   in 0s

2018-02-12 11:42:06 (8.71 MB/s) - written to stdout [165]

übertrage Zertifikat zur Fritz!Box

Scheinbar findet er das Zertifikat ja, jedoch kann er es wohl nicht übertragen!? Der Ordner ist zumindest korrekt.
Nochmals vielen Dank für eure Hilfe, kenne mich leider wirklich nicht so gut mit UNIX aus...

Mit freundlichen Grüßen, Marc :)
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Das einzige, was mir auffällt, ist die fehlende Import-Quittierung der FritzBox.
Ist der FritzBox-Username bei dir "admin" und Passwort korrekt (bei mir war der Username nicht egal)?
 
Zuletzt bearbeitet:

Burny92

Benutzer
Mitglied seit
13. Aug 2017
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Also mir kommt das hier komisch vor:
Rich (BBCode):
Length: unspecified [text/xml]

Benutzer ist admin, und Passwort ist korrekt. Gerade nochmal damit eingeloggt.
Und nur nochmal zur Sicherheit: Als "DOMAIN" muss ich doch meine komplette DynDNS Adresse eintragen, oder? Darauf ist schließlich auch mein Zertifikat ausgestellt. Also zum Beispiel:"test.dyndns.org".
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Ja.
domain="test.dyndns.org"
Das entsprechende Zertifikat wird ja auch bereits bei dir gefunden.

Warum die Meldung kommt, kann ich dir nicht genau sagen, aber das ist bei mir genauso und bei efzwo in seiner Ausgabe auch (guckst du hier).

Du könntest dir auch mal am Ende vom Skript die zu übertragene Datei $tmp ausgeben lassen. Vielleicht fällt dir darin was auf.

Einfach in einer Zeile vor rm -f $TMP
cat $TMP setzen
 

Burny92

Benutzer
Mitglied seit
13. Aug 2017
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Also für mich sieht es okay aus:
Rich (BBCode):
./fbcertupdate.sh
Zertifikat für [DynDNS-Adresse] liegt hier: /usr/syno/etc/certificate/_archive/bgoZ1D
--2018-02-12 12:24:06--  http://fritz.box/login_sid.lua?sid=0000000000000000&username=admin&response=-92a1a1e589e46d7a792de1df6ca22304
Resolving fritz.box... 192.168.178.1
Connecting to fritz.box|192.168.178.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/xml]
Saving to: 'STDOUT'

    [ <=>                                   ] 165         --.-K/s   in 0s

2018-02-12 12:24:07 (8.88 MB/s) - written to stdout [165]

übertrage Zertifikat zur Fritz!Box
-----------------------------20180212122407
Content-Disposition: form-data; name="sid"


-----------------------------20180212122407
Content-Disposition: form-data; name="BoxCertPassword"


-----------------------------20180212122407
Content-Disposition: form-data; name="BoxCertImportFile"; filename="BoxCert.pem"
Content-Type: application/octet-stream

-----BEGIN CERTIFICATE-----
[Keyinhalt]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[Keyinhalt]
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
[Keyinhalt]
-----END RSA PRIVATE KEY-----

-----------------------------20180212122407--

Gerade nochmal Fritz!Box neu gestartet, dennoch bleibt es dabei, dass kein Zertifikat importiert wurde :confused:
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Da kann ich dir leider auch nicht weiterhelfen. Ich würde auch nur probieren. Ein Unterschied noch zu dir: ich habe die IP der FritzBox eingetragen - aber das sollte ja keinen Unterschied machen. Hattest du deinen Slash hinter fritz.box/ wieder entfernt?
 

Burny92

Benutzer
Mitglied seit
13. Aug 2017
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Das Slash hab ich wieder entfernt, funktioniert nun auch so :)
Kann natürlich mal einfach meine IP eintragen, aber im Normalfall sollte das ja keinen Unterschied mehr machen. Er kann den Namen ja auflösen. Naja, probieren kann mans ja :)
Ist ja echt seltsam, dass das nicht mag.
Werde es gleich nochmal mit dem Script von efzwo probieren. Mal schauen, ob das aus welchem Grund auch immer funktioniert.

Trotzdem schonmal vielen herzlichen Dank für deine Bemühungen! Bin auf jeden Fall schon mal um einiges schlauer geworden.

Mit freundlichen Grüßen, Marc
 
Status
Für weitere Antworten geschlossen.
 

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