Hallo PureBasic Community
Stimmt es dass ReceiveHTTPMemory() für eine https:// - URL nicht funktioniert wenn der Server ein self-signed (d.h. nicht gültiges) Zertifikat besitzt? Gibt es einen Workaround?
Danke & Grüsse
Wayne-C
ReceiveHTTPMemory mit HTTPS und Self-signed Cert
- NicTheQuick
- Ein Admin
- Beiträge: 8812
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: ReceiveHTTPMemory mit HTTPS und Self-signed Cert
Ich wüsste jetzt kein Workaround.
Ich will aber noch etwas richtig stellen: "self-signed" heißt einfach nur "selbst signiert" und nicht "ungültig". Denn gültig und sicher ist es trotzdem, solange man der Domain vertraut.
Ich will aber noch etwas richtig stellen: "self-signed" heißt einfach nur "selbst signiert" und nicht "ungültig". Denn gültig und sicher ist es trotzdem, solange man der Domain vertraut.
Re: ReceiveHTTPMemory mit HTTPS und Self-signed Cert
Habe etwas zusammengebastelt, jetzt funktioniert es, einfach mit einem Umweg über das Filesystem...
So wär's schön:
Nice to have wäre ein Parameter #PB_Ignore_BadCerts in ReceiveHTTPMemory:
So funktioniert's:
So wär's schön:
Code: Alles auswählen
URL = "https://www.test.ch/"
Html.s = ""
*Buffer = ReceiveHTTPMemory(URL)
If *Buffer
Size = MemorySize(*Buffer)
Html = PeekS(*Buffer, Size, #PB_UTF8)
FreeMemory(*Buffer)
EndIf
Debug Html
Code: Alles auswählen
*Buffer = ReceiveHTTPMemory(URL, #PB_Ignore_BadCerts)
Code: Alles auswählen
URL = "https://www.test.ch/"
Html.s = ""
TempPath.s = Space(#MAX_PATH)
GetTempPath_(#MAX_PATH, @TempPath)
TempFile.s = Space(#MAX_PATH)
GetTempFileName_(TempPath, "EXE-", 0, TempFile)
DeleteUrlCacheEntry_(URL)
If URLDownloadToFile_(0, URL, TempFile, 0, 0) = #S_OK
If ReadFile(0, TempFile)
Length.l = Lof(0)
*MemoryID = AllocateMemory(Length)
If *MemoryID
ReadData(0, *MemoryID, Length)
Html = PeekS(*MemoryID, Length, #PB_UTF8)
FreeMemory(*MemoryID)
EndIf
CloseFile(0)
EndIf
DeleteFile(TempFile)
EndIf
Debug Html