wget
Carla
- webserver
Hey!
Ich möchte mich via WGET bei einer Internetseite anmelden doch die verlangt scheinbar noch ein Zertifikat. Dieses Zertifikat wird vermutlich vom Server selbst erstellt!? Wie kann ich mit wget das Zertifikat Speichern und für die weitere Session benutzen?
Danke
Carla
Hallo,
Ich möchte mich via WGET bei einer Internetseite anmelden doch die verlangt scheinbar noch ein Zertifikat. Dieses Zertifikat wird vermutlich vom Server selbst erstellt!? Wie kann ich mit wget das Zertifikat Speichern und für die weitere Session benutzen?
wget --help
gibt Auskunft. Möglicherweise benötigst Du keine Zertifikate, sondern möchtest nur Session-Cookies behalten:
--keep-session-cookies
Zu Zertifikaten findest Du einiges im Abschnitt
HTTPS (SSL) Optionen:
Freundliche Grüße
Vinzenz
Hallo!
wget --help
Ja ich bin ja nicht doof... Ich würde nicht fragen wenn ich nicht alleine weiter kommen würde!
Möglicherweise benötigst Du keine Zertifikate, sondern
--keep-session-cookies
Benutze ich schon!
Zu Zertifikaten findest Du einiges im Abschnitt
Kenn ich, Weiss ich.. bringt nix
HTTPS (SSL) Optionen:
Folgendes habe ich schon versucht:
wget --secure-protocol=auto --certificate=ca.key --cookies=on --load-cookies=$cookie --keep-session-cookies --save-cookies=cookie.txt $domain$1 --user-agent="$useragent" -O /my/path/index.htm
ca.key - habe ich mit openssl erstellt - das ist aber nicht des Rätsels Lösung
Die Variablen kommen aus einer global.conf
:-/
Carla
echo $begrüßung;
Ja ich bin ja nicht doof... Ich würde nicht fragen wenn ich nicht alleine weiter kommen würde!
Selbstverständlich nicht. Es ist doch aber allgemein bekannt, dass wir™ doof sind. Wir wissen nicht, was du weißt und was du schon probiert hast. Auch wissen wir nicht, was der Server konkret haben möchte, nachschauen können wir auch nicht. Deswegen können wir dir nur allgemeines Blabla antworten.
Zu Zertifikaten findest Du einiges im Abschnitt
Kenn ich, Weiss ich.. bringt nix
Aus "bringt nix" können wir™ auch nicht entnehmen, was konkret passiert oder was nicht.
Folgendes habe ich schon versucht:
Ah, jetzt werden wir™ etwas klüger, sind aber immer noch nicht schlau genug.
wget --secure-protocol=auto --certificate=ca.key --cookies=on --load-cookies=$cookie --keep-session-cookies --save-cookies=cookie.txt $domain$1 --user-agent="$useragent" -O /my/path/index.htm
Und was antwortet der Server oder wget daraufhin?
echo "$verabschiedung $name";
Moin!
wget --secure-protocol=auto --certificate=ca.key --cookies=on --load-cookies=$cookie --keep-session-cookies --save-cookies=cookie.txt $domain$1 --user-agent="$useragent" -O /my/path/index.htm
Und was antwortet der Server oder wget daraufhin?
Entweder
Auflösen des Hostnamen »www.abc.com«.... 12.34.567.980
Verbindungsaufbau zu www.abc.com|12.34.567.980|:443... verbunden.
FEHLER: Fehler beim Prüfen des Zertifikates für www.abc.com: unable to get local issuer certificate
Verwenden Sie »--no-check-certificate«, um zu dem Server »www.abc.com« eine nicht gesicherte Verbindung aufzubauen.
Es ist nicht möglich, eine SSL-Verbindung herzustellen.
ODER
Mach ich das (--no-check-certificate) dann wird mir der Zugang Serverseitig versperrt.
Ich kann auch ein Zertifikat mitschicken dann meldet wget lauter openssl fehler...
Carla
War ja mal wieder klar...
Sobald es interessant wird kommen keine Antworten mehr...
Hi,
Ja ich bin ja nicht doof...
Wuerde doch hier niemand niemals nicht unterstellen ...
Ich würde nicht fragen wenn ich nicht alleine weiter kommen würde!
... es sei denn, man wuerde die Unfaehigkeit, doppelte Verneinung nicht falsch einsetzen zu koennen, als "Doofheit" auslegen.
MfG ChrisB
Hallo,
Ich möchte mich via WGET bei einer Internetseite anmelden doch die verlangt scheinbar noch ein Zertifikat. Dieses Zertifikat wird vermutlich vom Server selbst erstellt!? Wie kann ich mit wget das Zertifikat Speichern und für die weitere Session benutzen?
Du musst zwei Zertifikate unterscheiden:
1) Serverzertifikat
2) Clientzertifikat
Das Serverzertifikat authentifiziert den Server, d.h. Du als Client kannst Dir sicher sein, dass Du mit dem richtigen Server sprichst. wget überprüft bei TLS/SSL automatisch das Serverzertifikat gegen eine vordefinierte CA-Liste (die sich vermutlich mit den CAs, die Browser kennen, deckt). Du kannst nun folgendes machen, wenn das Serverzertifikat nicht von wget erkannt wird:
a) Die Serverzertifikatsüberprüfung durch wget verhindern
(--no-check-certificate) - dann prüft wget nicht mehr, ob das Server-
zertifikat gültig ist.
b) wget mitteilen, welches das Zertifikat der CA ist, die das
Serverzertifikat ausgestellt hat (d.h. den Public Key des Servers
signiert hat) - damit wget das korrekt prüfen kann. Dafür gibt's die
Option --ca-certificate=DATEI.
Das Clientzertifikat ist dagegen ein Zertifikat, das DU als CLIENT mitschickst, damit der Server DICH authentifizieren kannst (das schickst Du statt User & Passwort mit). Dazu brauchst Du zuerst ein Schlüsselpaar (Private- und Public Key) und den Public Key kannst Du Dir dann von einer CA signieren lassen, die der Server akzeptiert, damit hast Du dann Zertifkat und Private Key. Die übergibst Du wget per --private-key=DATEI und --certificate=DATEI.
Woher Du an ein vom Server akzeptiertes Zertifikat kommst, können wir Dir hier nicht sagen, weil wir nicht wissen, was für Umstände bei Dir vorhanden sind. Wenn der Server ein Client-Zertifikat haben will, dann solltest Du mit dem Serverbetreiber reden, damit er Dir erklären kannst, wie Du eins bekommst, was vom Server auch akzeptiert wird.
Viele Grüße,
Christian
Moin!
Das Serverzertifikat authentifiziert den Server, ... Client .. sicher ...
... vordefinierte CA-Liste (die sich vermutlich mit den CAs, die Browser kennen, deckt).
a) --no-check-certificate
b) wget mitteilen, welches das Zertifikat der CA ist, die das
Serverzertifikat ausgestellt hat (d.h. den Public Key des Servers
signiert hat) - damit wget das korrekt prüfen kann. Dafür gibt's die
Option --ca-certificate=DATEI.
a) Funktioniert bekanntlich leider nicht
b) würde ich gerne umsetzen! aber:
welche DATEI schicke ich als Zertifikat mit bzw was steht in der DATEI drinne? Wohl das Zertifikat vom Server, aber
Wie "merke" ich mir das vom Server ausgestellte Zertifikat?
Und Welche CA-Liste steckt in den Browsern?
Danke
Carla
Hallo,
Das Serverzertifikat authentifiziert den Server, ... Client .. sicher ...
... vordefinierte CA-Liste (die sich vermutlich mit den CAs, die Browser kennen, deckt).a) --no-check-certificate
b) wget mitteilen, welches das Zertifikat der CA ist, die das
Serverzertifikat ausgestellt hat (d.h. den Public Key des Servers
signiert hat) - damit wget das korrekt prüfen kann. Dafür gibt's die
Option --ca-certificate=DATEI.a) Funktioniert bekanntlich leider nicht
Was heißt, "funktioniert nicht"? *Genaue* Fehlermeldung bitte!
Außerdem: Wenn a) nicht funktioniert, wird b) garantiert auch nicht funktionieren!
Viele Grüße,
Christian
Moin!
Was heißt, "funktioniert nicht"? *Genaue* Fehlermeldung bitte!
http://forum.de.selfhtml.org/?t=178840&m=1179766
Außerdem: Wenn a) nicht funktioniert, wird b) garantiert auch nicht funktionieren!
aha
Wie gesagt ich kann mich bei gewissen Seiten des Servers mit no-check-certificate und den POST-optionenen (..) Anmelden doch bei der einen Seite, die vermutlich explizit eine Sichere Authentifizierung wünscht, bekomme ich immer eine Fehlermeldung (Serverseitig in Form einer HTML-Seite!)
Carla
Hallo,
Wie gesagt ich kann mich bei gewissen Seiten des Servers mit no-check-certificate und den POST-optionenen (..) Anmelden doch bei der einen Seite, die vermutlich explizit eine Sichere Authentifizierung wünscht, bekomme ich immer eine Fehlermeldung (Serverseitig in Form einer HTML-Seite!)
Tja, dabei hilft --no-check-certificate garantiert nichts. Denn --no-check-certificate sagt, dass WGET überprüft, ob der Server vertrauenswürdig ist. Wenn Du eine Fehlermeldung vom Server bekommst, will der SERVER überprüfen, ob Du (!) vertrauenswürdig bist.
Ich hab das aber eigentlich schon in meinem ersten Posting gesagt: Es gibt zwei Arten von Überprüfungen und --no-check-certificate und --ca-certificate sind für die Checks von WGET selbst, --certificate ist, damit Du Dich gegenüber dem Server authentifizieren kannst. Im Prinzip kannst Du Dir vorstellen, dass --certificate sowas ähnliches wie Username & Passwort ist. Wenn Du also eine HTML-Fehlerseite bekommst, die etwas von wegen Zertifikat sagt, dann hast Du kein gültiges Zertifikat an den Server übermittelt. Das kannst Du per --certificate machen. Die Frage, woher Du so ein Zertifikat bekommst, kann Dir hier aber GARANTIERT keiner beantworten, denn Dir kann hier genauso wenig einer beantworten, wie Du an Usernamen & Passwort für andere gesicherte Seiten kommst.
Sprich: Du musst Dich mit dem Betreiber des Servers oder der Applikation auf dem Server auseinandersetzen, um zu erfragen, was genau Du benötigst, um auf die Applikation zuzugreifen und wie Du das bekommst.
Viele Grüße,
Christian
Hey!
Ich glaube das wir ein wenig aneinander vorbei reden.
Die Zugangsdaten wie Nutzername und Passwort sind die meinigen und wenn ich mich mit Firefox dort anmelde dann funktioniert ja alles.. Also was kann mein Browser was wget nicht kann bzw. nicht mit liefert.
Der Server spuckt also sowas wie ein Zertifikat aus welches der Firefox in Form einer Session ect immer wieder mit sendet, so meine Vermutung.
Oder der Firefox beinhaltet eine reihe von Standard-Zertifikaten die der Server als Authentisch aktzeptiert. Oder rede ich nur Unsinn? :-)
Carla
Hallo,
Ich glaube das wir ein wenig aneinander vorbei reden.
Die Zugangsdaten wie Nutzername und Passwort sind die meinigen und wenn ich mich mit Firefox dort anmelde dann funktioniert ja alles.. Also was kann mein Browser was wget nicht kann bzw. nicht mit liefert.
Der Server spuckt also sowas wie ein Zertifikat aus welches der Firefox in Form einer Session ect immer wieder mit sendet, so meine Vermutung.
Oder der Firefox beinhaltet eine reihe von Standard-Zertifikaten die der Server als Authentisch aktzeptiert. Oder rede ich nur Unsinn? :-)
Sorry, aber das ist wirklich Unsinn. Zertifikate sind sehr, sehr langlebige Angelegenheiten, nichts was mit Sessions zu tun hat.
Was ist denn der Wortlaut der HTML-Fehlermeldung (genauer Wortlaut!), die Du per wget bekommst?
Viele Grüße,
Christian
Also wenn ich folgendes Versuche
wget --no-check-certificate --cookies=on --load-cookies=$cookie --keep-session-cookies --save-cookies=cookie.txt $domain$1 --user-agent="$useragent" -O /my/path/index.htm
* Cookies sind ok
* (auch mit --secure-protocol=auto) ändert sich da nix
Bekomme ich
WARNUNG: Fehler beim Prüfen des Zertifikates für www.abc.com: unable to get local issuer certificate
Domain und Pfad stimmt auch sonst würde wget nichts über Zertifikate meckern!
Warum geht das mit Firefox und mit wget nicht? - Ist meine Zentrale Frage!
Carla
achso der "Wortlaut"
...
WARNUNG: Fehler beim Prüfen des Zertifikates für www.abc.com: unable to get local issuer certificate
...
Die heruntergeladene Datei beinhaltet alles mögliche von der Website wie Grafiken und drum rum inkl Fehlermeldung: "Die angeforderte Seite konnte nicht gefunden werden".
wenn ich jedoch den selben Link im Firefox aufrufe gehts!
Carla
wenn ich jedoch den selben Link im Firefox aufrufe gehts!
hab mir den Link jetzt einfach mal via ECHO ausgeben lassen
und ich wusste nicht das man das & Zeichen Maskieren muss!
Danke für den Support!!
Carla
Hallo,
wenn ich jedoch den selben Link im Firefox aufrufe gehts!
hab mir den Link jetzt einfach mal via ECHO ausgeben lassen
und ich wusste nicht das man das & Zeichen Maskieren muss!
Ja und nein.
In der Shell heißt ein &-Zeichen: Führe im Hintergrund aus. Das heißt:
befehl1 & befehl2
führt befehl1 im Hintergrund aus und startet währenddessen noch befehl2.
Du kannst das entweder maskieren oder in Anführungszeichen setzen (das würde ich empfehlen, dann sind auch andere Zeichen nicht so problematisch):
wget optionen "http://..../?a=b&c=d&e=f"
Viele Grüße,
Christian