John: HTTPS-Seiten auf Erreichbarkeit checken ...

Hallo an Alle!
Das ist mein erster Beitrag in diesem Forum. Ich hoffe jemand kann mir weiterhelfen. Ich bin jedenfalls für jeden Tipp dankbar!

Einleitung:
Es liegt ein Perl-Script vor, dass regelmäßig die Verfügbarkeit von Webseiten prüfen kann. Dazu ruft es die Seite auf und fängt den Error-Code (z.B. 200 OK) ab und speichert diesen plus die Uhrzeit. Das funktioniert einwandfrei bei Webseiten, die ganz normal per "http://www....." erreichbar sind.

Problem:
Wird allerdings versucht eine mit SSL verschlüsselte Webseite zu checken, also die Adresse mit ""https://www....." beginnt, so gibt das Script interessanterweise immer ein "200 OK" zurück auch wenn man z.B. die frei erfundene Seite "https://www.dieseseitegibtesaufgarkeinefall.abc" versuch zu checken. Das ist natürlich ziemlich ungünstig.

Der Code:

use LWP::UserAgent;

my $proxy = "http://XX.XX.XX.XX:8080";

my $ua = new LWP::UserAgent;

$ua->agent('Mozilla/5.0 (compatible; MSIE 5.5 X11; U; Linux 2.6.16 i586');
$ua->agent("Proxy_Agent/1.0 " . $ua->agent);
$ua->from('XXX@XXX.XX');
$ua->proxy([qw( https http ftp )],$proxy);

my $url = 'https://banking.postbank.de/app/welcome.do';

my $req = new HTTP::Request GET => $url;
#$req->proxy_authorization_basic($user,$pwd);
my $res = $ua->request($req);
print $res->code."\n";
print $res->is_success."\n";

print $res->as_string;

#$erg=$res -> content('text/html');
#print $erg;

use LWP;
print "This is libwww-perl-$LWP::VERSION\n";

Zusatzinfos:
Crypt::SSLeay ist schon installiert und taucht auch bei den ppm's auf ...

Der Proxyserver muss benutz werden und ist auch erreichbar. Nimmt man ihn im Browser, so ist auch die Darstellung von SSL-Seiten kein Problem. Am Proxy liegt es also nicht...

Vielen Vielen Dank für die Hilfe!!!

Grüße John.

  1. Hallo,

    Der Proxyserver muss benutz werden und ist auch erreichbar. Nimmt man ihn im Browser, so ist auch die Darstellung von SSL-Seiten kein Problem. Am Proxy liegt es also nicht...

    Was gibt denn der Proxyserver zurück, wenn ein Request auf eine nichtexistierende URL (http, https) gemacht wird (mit normalen Browser)?

    Viele Grüße,
    Hotte

    1. Hallo,

      Der Proxyserver muss benutz werden und ist auch erreichbar. Nimmt man ihn im Browser, so ist auch die Darstellung von SSL-Seiten kein Problem. Am Proxy liegt es also nicht...

      Was gibt denn der Proxyserver zurück, wenn ein Request auf eine nichtexistierende URL (http, https) gemacht wird (mit normalen Browser)?

      Viele Grüße,
      Hotte

      Hey,

      im Browser öffnet sich an dieser Stelle ein "Geben Sie die Logindaten"-Dialogfeld ein. Der Server fordert dann also eine Authentifizierung an.

      Gruß John.

      1. Hallo,

        im Browser öffnet sich an dieser Stelle ein "Geben Sie die Logindaten"-Dialogfeld ein. Der Server fordert dann also eine Authentifizierung an.

        Mit welchem Status kommt denn diese Seite?

        Viele Grüße,
        Horst

        1. Hallo,

          im Browser öffnet sich an dieser Stelle ein "Geben Sie die Logindaten"-Dialogfeld ein. Der Server fordert dann also eine Authentifizierung an.

          Mit welchem Status kommt denn diese Seite?

          Viele Grüße,
          Horst

          wie meinst du das?

          1. Hallo,

            im Browser öffnet sich an dieser Stelle ein "Geben Sie die Logindaten"-Dialogfeld ein. Der Server fordert dann also eine Authentifizierung an.

            Mit welchem Status kommt denn diese Seite?

            Viele Grüße,
            Horst

            wie meinst du das?

            Der Proxy schickt eine Seite und verlangt nach usr/passw. Dafür sendet er vorher ein header mit dem Serverstatus.

            Falls er eine normale HTML-Seite ausgibt, dürfte status 200 kommen. Falls er einen Status 401 schickt, baut der Browser einen Prompt.

            Also, was macht denn der Proxy? Welchen Status schickt er denn, wenn Du über den Proxy eine http/https-Seite anforderst, die es nicht gibt?

            Wenn er nämlich status 200 sendet, denkt Dein Script, die angeforderte Seite ist ok (auch wenn es die garnicht gibt).

            Viele Grüße,
            Horst

            1. Hallo,

              im Browser öffnet sich an dieser Stelle ein "Geben Sie die Logindaten"-Dialogfeld ein. Der Server fordert dann also eine Authentifizierung an.

              Mit welchem Status kommt denn diese Seite?

              Viele Grüße,
              Horst

              wie meinst du das?

              Der Proxy schickt eine Seite und verlangt nach usr/passw. Dafür sendet er vorher ein header mit dem Serverstatus.

              Falls er eine normale HTML-Seite ausgibt, dürfte status 200 kommen. Falls er einen Status 401 schickt, baut der Browser einen Prompt.

              Also, was macht denn der Proxy? Welchen Status schickt er denn, wenn Du über den Proxy eine http/https-Seite anforderst, die es nicht gibt?

              Wenn er nämlich status 200 sendet, denkt Dein Script, die angeforderte Seite ist ok (auch wenn es die garnicht gibt).

              Viele Grüße,
              Horst

              ich versteh was du meinst. das problem ist für mich grad nur herauszufinden, was da wirklich für ein errorcode zurück kommt ... da im Browser nur ein Promt auftaucht ... ob dieses Promt-Fenster aus Perl-Sichet einem 200er entspricht, kann ich so ja nicht sehen. Das Skript jedenfalls egal welche adresse man eingibt immer ein 200er aus. Allerdings eben nur bei https Seiten...

              grüße john

        2. Hallo,

          im Browser öffnet sich an dieser Stelle ein "Geben Sie die Logindaten"-Dialogfeld ein. Der Server fordert dann also eine Authentifizierung an.

          Mit welchem Status kommt denn diese Seite?

          Viele Grüße,
          Horst

          Moment, meinst du das?

          Network Access Message: The page cannot be displayed

          Technical Information (for Support personnel)
          Error Code: 407 Proxy Authentication Required. The ISA Server requires authorization to fulfill the request.

          1. Error Code: 407 Proxy Authentication Required. The ISA Server requires authorization to fulfill the request.

            Achso, er sendet einen 407. Was Dein Script da machen muss, steht schon als Kommentar drin. Mach das Kommentarzeichen weg, nimm die richtigen Credentials...

            Siehe auch ServerStati:

            http://de.selfhtml.org/servercgi/server/httpstatuscodes.htm

            Horst