Thema Datum  Von Nutzer Rating
Antwort
Rot winhttp-Request scheitert an Zertifikatsproblemen
02.01.2020 11:00:42 Thomas1000
NotSolved
02.01.2020 14:56:36 Werner
NotSolved
02.01.2020 16:11:34 Mase
NotSolved
03.01.2020 03:09:20 Gast76501
NotSolved
03.01.2020 10:12:40 Gast89156
NotSolved

Ansicht des Beitrags:
Von:
Thomas1000
Datum:
02.01.2020 11:00:42
Views:
1193
Rating: Antwort:
  Ja
Thema:
winhttp-Request scheitert an Zertifikatsproblemen

Hallo werte Gemeinde!

Eine kleine Herausforderung für VBA/Access/Zertifikats-Profis:

Für eine Access-Datenbank brauche ich Zugriff auf die API von SAP. Die benötigten Aufrufe wurden bereits erfolgreich via Postman getestet und funktionieren einwandfrei.

Ähnliche Schnittstellen zu JIRA und Confluence (ebenfalls über https - sogar beim selben Kunden!) habe ich bereits erfolgreich umgesetzt - OHNE Zertifikate anzugeben!

Mit folgendem Code versuche ich den Zugriff:

Code:



Dim SAP As New WinHttp.WinHttpRequest

Dim json As String
Dim SAPuser As String
Dim SAPpw As String

SAPuser = ""
SAPpw = ""

json = json & "{"
json = json & "   ""top"": ""1"""
json = json & "}"

payload = "/API_PURCHASEREQ_PROCESS_SRV/A_PurchaseRequisitionHeader"
    
    myURL = "https://xxxxxx.yyyyyyyyy.com:20400/sap/opu/odata/sap" & payload
    
(Server nur im lokalen Netz erreichbar - was mit Postman auch funktioniert!)

    With SAP
      .SetClientCertificate "LOCAL_MACHINEMYxxx.yyy.zzz.com"        

      .Option(4) = 13056 ' SSL-Zertifikate nicht reklamieren (eigentlich...)

      .Open "GET", myURL, False
      
      .setRequestHeader "Content-Type", "application/json"
      .setRequestHeader "Accept", "application/json"
      .setRequestHeader "x-csrf-token", "fetch"
      .setRequestHeader "Authorization", "Basic"
      .SetCredentials SAPuser, SAPpw, 0

      .Send json <== Hier tritt der Fehler auf!
      

Versuche ich dieses Script aufzurufen, dann bekomme ich - je nach Konstellation eine Fehlermeldung:

1) Kein Client-Zertifikat (oder ungültigen Pfad) übergeben:
==> Die Zertifizierungsstelle ist ungültig oder fehlerhaft (80072f0d)

2) Zertifikat NICHT angegeben UND Option(4) = 13056 (was angeblich Meldungen wegen Zerti-Problemen unterdrücken soll):
==> Beim Verarbeiten des Zertifikats ist ein unbekannter Fehler aufgetreten (80090327)

3) Zertifikat angegeben EGAL ob Option(4) = 13056 aktiv ist oder NICHT:
==> Die Anmeldeinformation im Clientzertifikat wurde nicht erkannt (80072f9a)

Am Proxy dürfte es nicht liegen, da es sich um eine interne Adresse handelt und auch Postman egal ist, ob Proxy aktiviert wurde oder nicht.

Eigentlich hatte ich große Hoffnungen in die Option(4) = 13056 gesetzt, die laut diverser Foren eigentlich Zertifikatsprobleme ignorieren sollte. Ausgeschrieben: Option(WinHttpRequestOption_SslErrorIgnoreFlags) = SslErrorFlag_Ignore_All)

Das Client-Zertifikat wurde vom Unternehmen installiert, aber auch selbst-erstellte und -signierte Zertifikate an gleichem Pfad ergeben genau das selbe Ergebnis.

Wer kann mir Tipps bzw. Denkanstöße geben?

Warum funktioniert die Option(4) nicht?

Kann es am exotischen Port 20400 (auf den ich keinen Einfluss nehmen kann) liegen?

Wer hat mit Access schon erfolgreich eine SAP-API genutzt?!

1000(s) Dank im Voraus!

Thomas Tausend


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot winhttp-Request scheitert an Zertifikatsproblemen
02.01.2020 11:00:42 Thomas1000
NotSolved
02.01.2020 14:56:36 Werner
NotSolved
02.01.2020 16:11:34 Mase
NotSolved
03.01.2020 03:09:20 Gast76501
NotSolved
03.01.2020 10:12:40 Gast89156
NotSolved