AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein SSL Authentifizierung mittels PEM Datei
Thema durchsuchen
Ansicht
Themen-Optionen

SSL Authentifizierung mittels PEM Datei

Ein Thema von duff · begonnen am 6. Sep 2013 · letzter Beitrag vom 17. Sep 2013
Antwort Antwort
Benutzerbild von duff
duff

Registriert seit: 26. Jan 2005
Ort: Brühl
76 Beiträge
 
Delphi 2007 Professional
 
#1

SSL Authentifizierung mittels PEM Datei

  Alt 6. Sep 2013, 12:07
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ß
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#2

AW: SSL Authentifizierung mittels PEM Datei

  Alt 6. Sep 2013, 12:20
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.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

AW: SSL Authentifizierung mittels PEM Datei

  Alt 6. Sep 2013, 12:37
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)?
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von duff
duff

Registriert seit: 26. Jan 2005
Ort: Brühl
76 Beiträge
 
Delphi 2007 Professional
 
#4

AW: SSL Authentifizierung mittels PEM Datei

  Alt 6. Sep 2013, 12:41
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

IdHTTP1.POST eine Exception ausgelöst mit folgendem Hinweis:

"Stammzertifikat konnte nicht geladen werden"

Delphi-Quellcode:
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);
EDIT:

Folgendes wird im Browser angezeigt wenn die URL dort öffnen möchte.

Code:
<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>
Base ist das Authentifizierungsverfahren.

EDIT 2:

Ich habe nun versucht einfach mal die URL ohne das Zertifikat zu benutzen.

Folgende Exception ist das Ergebnis:

SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Geändert von duff ( 6. Sep 2013 um 12:59 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#5

AW: SSL Authentifizierung mittels PEM Datei

  Alt 6. Sep 2013, 13:13
Ist SSLOptions.RootCertFile sicher die richtige Property? Unter http://www.delphipraxis.net/169295-h...tifikaten.html sieht man im Beispielquelltext noch weitere

Delphi-Quellcode:
  FIdSSLIOHandlerSocketOpenSSL.SSLOptions.RootCertFile:= ...
  FIdSSLIOHandlerSocketOpenSSL.SSLOptions.CertFile:= ...
  FIdSSLIOHandlerSocketOpenSSL.SSLOptions.KeyFile:= ...

RootCert verstehe ich als ein übergeordnetes Zertifikat (vermutlich optional).

Siehe auch Beispiel unter

http://www.delphipraxis.net/138951-i...gsproblem.html
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von duff
duff

Registriert seit: 26. Jan 2005
Ort: Brühl
76 Beiträge
 
Delphi 2007 Professional
 
#6

AW: SSL Authentifizierung mittels PEM Datei

  Alt 9. Sep 2013, 14:18
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:
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"
Hat jemand noch einen heißen Tipp für mich?
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#7

AW: SSL Authentifizierung mittels PEM Datei

  Alt 9. Sep 2013, 17:03

Hat jemand noch einen heißen Tipp für mich?
SoapUI für Tests verwenden (vom gleichen Rechner aus). Wenn es damit funktioniert, kann man sicher sein es - prinzipiell - auch mit anderen SOAP Frameworks oder direkt über einen HTTP Client funktioniert.

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.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von duff
duff

Registriert seit: 26. Jan 2005
Ort: Brühl
76 Beiträge
 
Delphi 2007 Professional
 
#8

AW: SSL Authentifizierung mittels PEM Datei

  Alt 17. Sep 2013, 15:10

Hat jemand noch einen heißen Tipp für mich?
SoapUI für Tests verwenden (vom gleichen Rechner aus). Wenn es damit funktioniert, kann man sicher sein es - prinzipiell - auch mit anderen SOAP Frameworks oder direkt über einen HTTP Client funktioniert.

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.
Hallo mjustin, also mit SoapUI funktioniert es. Anscheinend bin ich mit meinem Lösungsansatz auf dem Holzweg.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz