Carla: wget

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

  1. 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

    1. 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

      1. 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";

        1. 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

      2. War ja mal wieder klar...

        Sobald es interessant wird kommen keine Antworten mehr...

      3. 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

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
  2. 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

    1. 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

      1. 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

        1. 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

          1. 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

            1. 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

              1. 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

                1. 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

                  1. 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

                    1. 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

                      1. 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