AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zertifikat nutzen

Offene Frage von "Zwirbel"
Ein Thema von Zwirbel · begonnen am 25. Okt 2016 · letzter Beitrag vom 17. Dez 2019
Antwort Antwort
Seite 1 von 3  1 23   
Zwirbel

Registriert seit: 17. Aug 2009
64 Beiträge
 
Delphi 10 Seattle Ultimate
 
#1

Zertifikat nutzen

  Alt 25. Okt 2016, 07:56
Hallo,

per TRestClient/TRestRequest greifen wir auf eine Schnittstelle eines Kunden zu, derzeit noch per HTTP. Wenn unser Schnittstellen-Programm produktiv gehen soll, dann soll es aber per HTTPS arbeiten. Dazu stellt uns der Betreiber der Schnittstelle dann ein "Zertifikat" zur Verfügung. Damit habe ich bisher keine Erfahrung. Leider habe ich auch auf mehrfache Anfrage dieses Zertifikat nocht nicht erhalten und kann mir so noch keine Vorstellung davon machen, was das eigentlich genau ist (vermutlich eine Datei, so stelle ich mir das vor). Ich wurde lediglich gefragt, ob wir ein Zertifikat in unsere Anwendung einbinden könnten. Ich wüsste aber nicht wie man in Delphi Seattle ein solches einbindet (irgendwo in den Projektoptionen oder so).

Nun bin ich der Spur http://docwiki.embarcadero.com/RADSt...oraussetzungen nach gegangen, und habe mir eine TIdHTTP und eine TIdSSLIOHandlerSocketOpenSSL-Komponente aufs Formular gepappt, aber welche Properties muss ich nun wie füllen?

Delphi-Quellcode:
object IdHTTP: TIdHTTP
  IOHandler = IdSSLIOHandlerSocketOpenSSL
  AllowCookies = True
  ProxyParams.BasicAuthentication = False
  ProxyParams.ProxyPort = 0
  Request.ContentLength = -1
  Request.ContentRangeEnd = -1
  Request.ContentRangeStart = -1
  Request.ContentRangeInstanceLength = -1
  Request.Accept = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
  Request.BasicAuthentication = False
  Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
  Request.Ranges.Units = 'bytes'
  Request.Ranges = <>
  HTTPOptions = [hoForceEncodeParams]
  Left = 120
  Top = 408
end
object IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL
  MaxLineAction = maException
  Port = 0
  DefaultPort = 0
  SSLOptions.Mode = sslmUnassigned
  SSLOptions.VerifyMode = []
  SSLOptions.VerifyDepth = 0
  Left = 120
  Top = 460
end

Letztere hat ein Property SSLOptions und darin ein "CertFile"- und ein "RootCertFile"-Property, da könnte ich mir vorstellen, dann ein "Zertifikat", wie ich es erhalten soll, einzutragen. Aber wie verbandel ich das ganze mit dem Rest der Anwendung? Wirklich was erhellendes habe ich im Netz dazu nicht gefunden. Und mit der Indy-Doku komme ich auch nicht klar (viele Links auf der Webseite sind tot), da finde ich kein rudimentäres Beispiel, das die Verwendung von TIdHTTP oder TIdSSLIOHandlerSocketOpenSSL zeigt.

Hat jemand ein Beispiel an der Hand wie man mit TIdHTTP/TIdSSLIOHandlerSocketOpenSSL Zertifikate nutzt?

Danke. Gruß, Markus
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.003 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Zertifikat nutzen

  Alt 25. Okt 2016, 12:45
Bei HTTPS liegt das Zertifikat auf dem Webserver. In Delphi braucht man dazu kein Zertifikat zu installieren, da Indy über OpenSSL die HTTPS Verbindung aufbaut.

Für TIdHttp muss auch nicht unbedingt kein TIdSSLIOHandlerSocketOpenSSL im Code erzeugt werden. Indy erzeugt für URLs, die mit https:// beginnen, den TIdSSLIOHandlerSocketOpenSSL selbst.

Nur falls es sich um ein "Client-Zertifikat" oder ein Signatur-Zertifikat handeln sollte muss die Delphi Anwendung das Zertifikat lokal haben und z.B. Requests damit signieren.

Dazu sollte der Anbieter des Web Service allerdings Informationen haben.
Michael Justin
  Mit Zitat antworten Zitat
Zwirbel

Registriert seit: 17. Aug 2009
64 Beiträge
 
Delphi 10 Seattle Ultimate
 
#3

AW: Zertifikat nutzen

  Alt 25. Okt 2016, 15:17
Dazu sollte der Anbieter des Web Service allerdings Informationen haben.
Danke erst mal für die Antwort. Ich denke diese Informationen muss ich wohl abwarten. Gruß, Markus
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Zertifikat nutzen

  Alt 25. Okt 2016, 16:05
Und bei einem Server Zertifikat, sollte der public-Teil ebenfalls in der Anwendung vorliegen. Damit kannst du dann die Authentizität des Servers prüfen und dein Programm gegen MITM absichern.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Zwirbel

Registriert seit: 17. Aug 2009
64 Beiträge
 
Delphi 10 Seattle Ultimate
 
#5

AW: Zertifikat nutzen

  Alt 26. Okt 2016, 07:16
Und bei einem Server Zertifikat, sollte der public-Teil ebenfalls in der Anwendung vorliegen. Damit kannst du dann die Authentizität des Servers prüfen und dein Programm gegen MITM absichern.
Genau um diese Frage ging es mir ja, wie mache ich das, das Zertifikat in der Anwendung vorliegen lassen? Aber ich warte erst mal ab, was man mir letztlich zusendet und frage dann hier gegebenenfalls noch mal gezielt nach. Gruß, Markus
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.592 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Zertifikat nutzen

  Alt 26. Okt 2016, 07:34
[OT]

Nebenbei würde mich interessieren, wie man einen eigenen REST-Server per Let's Encrypt mit einem SSL-Zertifikat ausstattet. Kann man das direkt von der eigenen Anwendung aus? Oder sollte man lieber parallel einen Apache/NGINX-Server auf der Maschine laufen lassen, der sich um die Aktualisierung kümmert? Soweit ich das verstanden habe, legt der Webserver das Zertifikat definiert im System ab und ich kann ich in meine Server-Anwendung herein laden.

[/OT]
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Zertifikat nutzen

  Alt 26. Okt 2016, 08:48
Gelöscht wegen Doppelpost (entweder ist mein Koffeinspiegel noch zu niedrig oder das Board hatte Schluckauf ^^)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (26. Okt 2016 um 09:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Zertifikat nutzen

  Alt 26. Okt 2016, 08:54
Moin!

Nun bin ich der Spur http://docwiki.embarcadero.com/RADSt...oraussetzungen nach gegangen, und habe mir eine TIdHTTP und eine TIdSSLIOHandlerSocketOpenSSL-Komponente aufs Formular gepappt, aber welche Properties muss ich nun wie füllen?
Genau wegen solcher "Tutorials" könnt ich Emba mit dem nackten A**** ins Gesicht springen (sorry für den Ausdruck ^^). Aber die Qualität dieser Anleitung ist in etwa so gut wie:

"F: Wie kann ich den Motor meines Autos reparieren? A: In dem Sie die Motorhaube öffnen."

Die besagte Anleitung bringt einen bestenfalls da hin, dass man eine verschlüsselte Verbindung aufbaut. Allerdings ist man dann noch längst nicht an dem Punkt wo man sagen kann: Ich weiß dass die Verbindung sicher ist. Denn es wären auch die Zertifikate zu prüfen einschließlich deren CAs. Was mir auch noch größte Bauchschmerzen bereitet ist die Tatsache, dass man für Indy abgewandelte, vorkompilierte OpenSSL-Bibliotheken verwenden muss. Aktueller Stand von OpenSSL ist 1.1.0b während Indy noch bei 0.9.8r steht (eine "r" gibt es noch nicht mal offiziell). Die stammt lt. OpenSSL-Changelog irgendwann aus 2010..2011 (wie schauts da eigentlich mit Heartbleed aus????)

Oh oh oh...

Grüße
Cody

EDIT: Korrektur, aktuell steht Indy bei 1.0.2j (August 2016) - mein Fehler - Die Kritik an der Emba-Anleitung und den modifizierten, nur als Binary erhältlichen OpenSSL-Libs lass ich aber mal so stehen.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (26. Okt 2016 um 08:57 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.003 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Zertifikat nutzen

  Alt 26. Okt 2016, 12:28
Die Kritik an ... den modifizierten, nur als Binary erhältlichen OpenSSL-Libs lass ich aber mal so stehen.
Modifizierte OpenSSL Versionen wurden nur für Indy 8, 9 und frühe 10er Versionen von Indy benötigt. Seit einigen Jahren werden die normalen Versionen benutzt (die man bei Bedarf auch selbst kompilieren kann).

Quelle: https://stackoverflow.com/questions/...ad-ssl-library
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
EmWieMichael

Registriert seit: 28. Mär 2012
103 Beiträge
 
#10

AW: Zertifikat nutzen

  Alt 28. Okt 2016, 10:33
@Zwirbel
Mich hat Indy verwirrt und sprachlos zurückgelassen; von Doku kann nicht wirklich die Rede sein, und im Netz habe ich nur Fragen zum Thema Indy, aber kaum Antworten gefunden. Das ist sehr schade.

Ich habe die Geschichte dann ohne Indy gelöst. In diesem Thread kannst Du nachlesen wie.
Übrigens werden die Clientzertifikate eigentlich nur in den Zertifikatspeicher importiert (IExplorer) und beim Verbindungsaufbau angegeben (siehe Quellcode). Mein Code funktioniert mit Delphi 2010; die Anwendungen greifen auf Server des Bundesverwaltungsamtes im geschlossenen Deutschland-Online-Netz zu.

Gruß Michael
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:35 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