![]() |
SSL Authentifizierung mittels PEM Datei
Hallo Zusammen,
in einem derzeitigen Projekt muss ich mit einer verschlüsselten SOAP-Schnittstelle kommunizieren. Dazu habe ich vom Anbieter der Schnittstelle eine .pem und .pfx Datei vorliegen. Da ich noch nicht mit Zertifikaten gearbeitet habe, würde ich mich über hinweise freuen, wie ich die Datei(en) richtig verwende um mich bei der Schnittstelle auch richtig authentifizieren zu können. Bei meinen (nicht erfolgreichen) Versuchen habe ich die TIdHTTP und TIdSSLIOHandlerSocketOpenSSL Komponenten bemüht. Schon einmal vielen Dank und Gruß |
AW: SSL Authentifizierung mittels PEM Datei
Wenn du uns kurz umreisst, was Du versucht hast und wo es nicht erfolgreich war, wäre eine Hilfe sicherlich einfacher, denn alles von Grund auf zu erklären wäre dann ja ggfls. gar nicht nötig, während die Frage jetzt so generell gehalten ist, dass mir z.B. gerade die Zeit zum Antworten fehlt.
|
AW: SSL Authentifizierung mittels PEM Datei
Für die Authentifizierung spielt SSL eigentlich keine Rolle. Normalerweise wird erst die Verbindung mit SSL hergestellt, und dann kommt die Anmeldung über den verschlüsselten Kanal.
Welches Authentifizierungsverfahren wird denn benutzt (Basic, NTLM, Digest, Kerberos)? Das ist im HTTP Header beim Verbindungsaufbau zu sehen. Kann man mit einem Webbrowser die Service URL öffnen und sieht etwas (zumindest eine Fehlermeldung des Servers)? |
AW: SSL Authentifizierung mittels PEM Datei
Ja klar. Ich versuche mal etwas genauer zu sein.
Was ich bisher habe: - libeay32.dll und ssleay32.dll befinden sich im Programmverzeichnis Und wenn folgender Code ausgeführt wird bei der Zeile
Delphi-Quellcode:
eine Exception ausgelöst mit folgendem Hinweis:
IdHTTP1.POST
"Stammzertifikat konnte nicht geladen werden"
Delphi-Quellcode:
EDIT:
const
baseURLevent: string = 'https://meineURL.com:11851'; LoadOpenSSLLibrary; slPost := TStringList.Create; tmpStr := ExtractFilePath(ParamStr(0))+'zertifikat.pem'; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.RootCertFile := tmpStr ; stringStream := TStringStream.Create(slPost.Text); postResult := IdHTTP1.POST(baseURLevent, stringStream); Folgendes wird im Browser angezeigt wenn die URL dort öffnen möchte.
Code:
Base ist das Authentifizierungsverfahren.
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body> <S:Fault xmlns:ns3="http://www.w3.org/2003/05/soap-envelope"> <faultcode>S:Client</faultcode> <faultstring> Couldn't create SOAP message due to exception: XML reader error: com.sun.xml.stream.XMLStreamException2: ParseError at [row,col]:[1,1] Message: Premature end of file. </faultstring> </S:Fault> </S:Body> </S:Envelope> EDIT 2: Ich habe nun versucht einfach mal die URL ohne das Zertifikat zu benutzen. Folgende Exception ist das Ergebnis:
Delphi-Quellcode:
SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
|
AW: SSL Authentifizierung mittels PEM Datei
Ist SSLOptions.RootCertFile sicher die richtige Property? Unter
![]()
Delphi-Quellcode:
FIdSSLIOHandlerSocketOpenSSL.SSLOptions.RootCertFile:= ...
FIdSSLIOHandlerSocketOpenSSL.SSLOptions.CertFile:= ... FIdSSLIOHandlerSocketOpenSSL.SSLOptions.KeyFile:= ... RootCert verstehe ich als ein übergeordnetes Zertifikat (vermutlich optional). Siehe auch Beispiel unter ![]() |
AW: SSL Authentifizierung mittels PEM Datei
Leider bin ich noch nicht viel weiter gekommen.
Momentan binde ich die .pem Datei (Inhalt RSA PRIVATE KEY) als SSLOptions.KeyFile ein. Außerdem habe ich mir das über die .pfx Datei installierte Zertifikat als .CER Datei(Base-64 Codiert,Inhalt: BEGIN CERTIFICATE....) aus dem Internet-Explorer exportiert. Diese Datei binde ich als SSLOptions.CertFile ein. Die Logs der OpenSSL Status Info sagen folgendes. Außerdem wird eine Exception SSL3_GET_SERVER_CERTIFICATE:certificate verify failed ausgelöst.
Code:
Hat jemand noch einen heißen Tipp für mich?
SSL-Status: "before/connect initialization"
SSL-Status: "before/connect initialization" SSL-Status: "SSLv3 write client hello A" SSL-Status: "SSLv3 read server hello A" SSL-Status: "SSLv3 read server certificate B" SSL-Status: "SSLv3 read server certificate B" |
AW: SSL Authentifizierung mittels PEM Datei
Zitat:
SoapUI ist praktisch die Referenz, und wenn man seinen HTTP traffic aufzeichnet (ja, das geht auch mit HTTPS im Klartext - siehe Fiddler), kann man den HTTP Traffic mit dem von Delphi erzeugten vergleichen um die Unterschiede zu finden. SoapUI setzt eine Java Runtime voraus. |
AW: SSL Authentifizierung mittels PEM Datei
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz