InetRead bzw. Inetget mit HTTPS

  • Hallo AutoItler!


    Ich habe vor länger Zeit einen Loader für eine LiveCD geschrieben. Der basiert noch auf einen HTTP-Download. Jetzt ist es aber an der Zeit das auf HTTPS umzustellen. Und da ist auch mein Problem: Der Download funktioniert nicht wenn das Zertifikat nicht am Client ist.


    Um das Problem einzugrenzen habe ich ein kleines Script zum Testen geschrieben:



    mit der Option 3 (Forces a reload from the remote site & Ignore all SSL errors (with HTTPS connections) sollte ein Zertifikatsfehler ja ignioriert werden, tut es aber nicht!

    Um mögliche Eigenfehler auszuschliessen, kann ich die Datei auch via HTTP runter laden, es funktioniert auch wenn kein Zertifikatsfehler kommt (sprich auf meinen PC ist alles korrekt eingetragen).


    Ein weiter Test mit WGET https://IP_des_Server/test.cfg -Oc:\test\test.cfg --no-check-certificate funktioniert auch....

    Um die Frage warum ich nicht das Zertifikat vorab installiere: Das ist eine Henne / EI Problem, denn die Zertifikate vom Loader geladen und installiert werden :/


    Im Forum habe diesen Beitrag gefunden, leider ohne Lösung: InetRead bei REST-Api schlägt fehl


    Ideen dazu?


    lg

    Racer

  • Ich hatte mit InetGet() auch schon mal zu kämpfen. Seitdem nutze ich das WinHTTP Objekt. Das kommt auch ohne viel Aufwand super mit Proxyumgebungen klar.


    AutoIt
    1. Local $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    2. $oHTTP.Open("GET", "https://IP_des_Server/test.cfg")
    3. $oHTTP.Send()
    4. $File = $oHTTP.Responsetext

    Ich hoffe der externe Link ist hier ok: WinHttpRequest object im MSDN

  • OMG, hier ist es alles für Dich fertig: TUT auf feldstudie.net


    Zum Verständnis (häää, wiso $objhttp.Option(4) = 13056 ; turns off ssl error messages and warnings ?!)


    13056 ist in hex 0x3300 und ergibt sich als Summe der folgenden WinHttpRequestOption_SslErrorIgnoreFlags (siehe MSDN):


    Error Value
    Unknown certification authority (CA) or untrusted root 0x0100
    Wrong usage 0x0200
    Invalid common name (CN) 0x1000
    Invalid date or certificate expired 0x2000