Hallo,
ich habe mir schon einen Wolf gesucht und komme einfach nicht weiter...
Also, wir hatten bis zum Frühjahr über unsere Access-Datenbank an ein Endgerät Aufträge verschickt und Statusmeldungen / Nachrichten zurück bekommen.
Jetzt waren die Geräte einige Zeit nicht im Einsatz. Jetzt klappt unser VBA-Modul jedoch nicht mehr.
Sehr wahrscheinlich liegt es daran, dass die Gegenseite zwischenzeitlich auf TLS 1.2 umgestellt hat.
Jetzt versuche ich das hier einzubinden, die Datenbank läuft jedoch auf einem recht alten Rechner (Win7 Ultimate SP1 und Access 2002, bzw. runtime 2007).
Vorausschickend sei angemerkt, dass ich (natürlich) in den Internetoptionen (erweitert) TLS 1.2 aktiviert habe.
Auch habe ich den Hinweis / das Update von Microsoft dazu (https://support.microsoft.com/de-de/topic/update-zum-aktivieren-von-tls-1-1-und-tls-1-2-als-sichere-standardprotokolle-in-winhttp-in-windows-c4bd73d2-31d7-761e-0178-11268bb10392) umgesetzt.
Beides bringt jedoch absolut nichts!
Ich erhalte bei "send" immer die Fehlermeldung "Im Support des sicheren Channels ist ein Fehler aufgetreten".
Habe da auch schon verschiedene "Tipps" hierzu versucht umzusetzen. Der Code sieht aktuell so aus:
Const HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0
Dim HttpReq As WinHTTP.WinHttpRequest
Set HttpReq = New WinHttpRequest
' Timeouts setzen.
HttpReq.setTimeouts 60000, 60000, 60000, 60000
reportURL = rst("Server")
Anmeldung = "?account=" & rst("Benutzername") & "&username=" & rst("DeviceID") & _
"&password=" & rst("Passwort") & "&objectno=" & rst("Kennung") & apikey
Aktion = "&lang=de&useISO8601=true&action=showObjectReportExtern"
' HTTP Verbindung öffnen
HttpReq.Open "GET", reportURL & Anmeldung & Aktion, False
HttpReq.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
HttpReq.SetCredentials rst("Benutzername"), rst("Passwort"), HTTPREQUEST_SETCREDENTIALS_FOR_SERVER
HttpReq.Option(WinHttpRequestOption_SecureProtocols) = 2048 ' 2048 für HEX 000800 = TLS 1.2;
' liefert: Fehlernummer 5 ("Ungültiger Prozeduraufruf oder ungültiges Argument")
HttpReq.Option(9) = 2048 ' 2048 für HEX 000800 = TLS 1.2;
' liefert: Fehlernummer 5 ("Ungültiger Prozeduraufruf oder ungültiges Argument")
HttpReq.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = _
WinHTTP.WinHttpRequestSslErrorFlags.SslErrorFlag_Ignore_All
'Ignore SSL errors, hat keinerlei Effekt
'In UTF-8 kodieren
HttpReq.Option(WinHttpRequestOption_URLCodePage) = "UTF-8"
HttpReq.SetRequestHeader "Content-Type", "text/xml; charset=UTF-8"
' HTTP-Request absenden.
HttpReq.Send
' liefert: Fehlernummer -2147012739
' ("Im Support des sicheren Channels ist ein Fehler aufgetreten")
' Auf die Serverantwort warten.
HttpReq.waitForResponse
' Ergebnis zurück geben
RequestAntwort = HttpReq.responseText
...
Habe auch in der Registry bereits manuell
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp den Schlüssel DefaultSecureProtocols auf 0x00000800 gesetzt...
Den Requeststring im Browser eingegeben funktioniert einwandfrei.
Der Rechner (zumindest die Browser) "kann" also TLS 1.2 doch...
Hat da irgendjemand eine Idee zu?!
Danke für die Hilfe
Frank
Hast du mal versucht in der Registry (HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols, Siehe: TLS/SSL Settings (https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn786418(v=ws.11)?redirectedfrom=MSDN)) generell für SChannel TLS 1.2 zu aktivieren und alle älteren Protokolle zu deaktivieren?
Hi PhilS,
ne, das noch nicht.
Da steht bei mir (neben TLS 1.2) noch TLS 1.1 drin...
Versuche ich gleich nochmal.
Viele Grüße
Frank
Hallo PhilS,
habe Deinen Rat befolgt und zusätzlich (noch einmal) den Assistenten für die Erweiterung der Registrierungsschlüssel (diesmal also nicht "händisch", sondern mit dem Assistenten von Microsoft) durchlaufen lassen...
Und was soll ich sagen?
Jetzt klappt es!
Ob es jetzt Dein Tipp war oder ich einfach nur einen Schlüssel manuell nicht oder nicht korrekt eingetragen hatte, vermag ich nicht zu sagen, aber ich gehe davon aus, dass Dein Tipp zielführend war, weil ich doch bestimmt keinen Fehler gemacht hatte...
;-)
Vielen lieben Dank!
Frank
???
Wo ist denn der Knopf "Thema gelöst"?
Thema gelöst, siehe oben rechts.
ZitatNeuigkeiten: Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!