AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TCPServer/TCPClient SSL Verifizieren
Thema durchsuchen
Ansicht
Themen-Optionen

TCPServer/TCPClient SSL Verifizieren

Ein Thema von DelTurbo · begonnen am 17. Apr 2023 · letzter Beitrag vom 19. Apr 2023
Antwort Antwort
Seite 1 von 2  1 2      
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#1

TCPServer/TCPClient SSL Verifizieren

  Alt 17. Apr 2023, 14:06
Hi,
ich weiß nicht ob mein Gedankengang falsch ist, aber ich finde weder hier noch bei Google etwas über meine frage.

Ich möchte einen TCPServer mit Selbst erstellten Zertifikaten erstellen. Das klappt auch. Ich kann mit einem TCPClient (alles Indy) mit SSL drauf Connecten.

Nun zu meiner eigentlichen Frage. Ist es möglich das nur Clients mit dem richtigen Zertifikat Connecten können? Wenn ja, wie geht das? Wenn nicht, dann habe ich falsch gedacht.

Es wird natürlich zusätzlich User und Pass erwartet. Wie gesagt, das klappt. Aber ich brauch dem Client gar kein Zertifikat mitgeben und er Conncted fröhlich vor sich hin.

Vielen dank im Voraus

Nachtrag: Die Zertifikate erstelle ich hiermit.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (17. Apr 2023 um 14:11 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TCPServer/TCPClient SSL Verifizieren

  Alt 17. Apr 2023, 14:15
.. die Abweisung sollte doch auf dem Server erfolgen.
Bei dem TIdServerIOHandlerOpenSsl gibt es das Event onVerifyPeer.
Dort kannst Du das Zertifikat auslesen und gegebenenfalls ablehnen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#3

AW: TCPServer/TCPClient SSL Verifizieren

  Alt 17. Apr 2023, 14:19
Hast du da vielleicht einen Link zu einem Beispiel. Ich weiß z.b. auch nicht wie ich den ServerSSLIOHandler einstellen soll. Bei mir läuft er da nicht rein.

Ich habe das beispiel genommen.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#4

AW: TCPServer/TCPClient SSL Verifizieren

  Alt 17. Apr 2023, 15:27
Also,
ich habe es nur soweit das wenn der Client Connected der Server in IdServerIOHandlerSSLOpenSSL1VerifyPeer springt. Aber nun stehe ich wieder auf dem schlauch. Keine ahnung was ich da machen soll. Im moment gebe ich einfach True zurück. Das soll er aber nur zurückgeben wenn es passt. Die sache die in Certificate stehen verstehe ich nicht. Leider. Muss man da nochwas umrechnen? Ist das überhaupt richtig das ich beiden (Client und Server) die gleichen Zertifikate mitgebe?

Google bringt mich nicht weiter. Wenn ich die antwort hätte, hätte ich die schon gepostet.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TCPServer/TCPClient SSL Verifizieren

  Alt 17. Apr 2023, 15:40
im onVerifyPeer gibt es doch den Parameter Certificate diese hat das Property FingerprintAsString
das könntest Du doch mit dem Fingerprint des Client Certifcate vergleichen.
Klaus

Geändert von Klaus01 (17. Apr 2023 um 15:44 Uhr)
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#6

AW: TCPServer/TCPClient SSL Verifizieren

  Alt 17. Apr 2023, 16:12
Hi,
erstmal danke das mir helfen möchtest. Dort Certificate.FingerprintAsString ist er als String drin. Aber ich habe vom Client keinen Fingerprint damit ich vergleichen könnte.

Ich frage einfach mal, hast du keine Batch oder link zu einer Batch (kann auch Unix sein) um die Zertifikate zu erstellen? Ich komme so einfach nicht weiter. Man findet aber auch kein Beispiel im Netz. Bin ich denn der einzige der das machen möchte? Würde mich wundern.

Es würde um Server Zertifikat und Client Zertifikat gehen. Ich weiß nicht ob es die gleichen sind.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
mjustin

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

AW: TCPServer/TCPClient SSL Verifizieren

  Alt 17. Apr 2023, 16:16
Ist das überhaupt richtig das ich beiden (Client und Server) die gleichen Zertifikate mitgebe?
Zu Testzwecken kann man das zwar, aber das Server-Zertifikat braucht weiterzugeben, denn der Client erhält es 'automatisch' beim Verbindungsaufbau zugesandt (und kann es dann validieren).

Das Client-Zertifikat muss man dem Client immer bereitstellen, denn dieser muss es beim Verbindungsaufbau dem Server vorweisen. Es kann so die Anmeldung mit Benutzer/Passwort ersetzen.
Michael Justin
  Mit Zitat antworten Zitat
mjustin

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

AW: TCPServer/TCPClient SSL Verifizieren

  Alt 17. Apr 2023, 16:24
Hi,
erstmal danke das mir helfen möchtest. Dort Certificate.FingerprintAsString ist er als String drin. Aber ich habe vom Client keinen Fingerprint damit ich vergleichen könnte.
Zertifikate und deren Fingerprints lassen sich unter Windows einfach in den Dateieigenschaften nachschauen, oder über die Kommandozeile.
Daher einfach das Client-Zertifikat im Explorer öffnen.

Alternativ: https://learn.microsoft.com/de-de/do...-a-certificate
(das setzt jedoch voraus, dass das Zertifikat im Zertifikatsspeicher abgelegt wurde)
Michael Justin
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#9

AW: TCPServer/TCPClient SSL Verifizieren

  Alt 17. Apr 2023, 16:25
Hi,
die frage ist immernoch wie erstelle ich Server und Client Zertifikat. Klar, mit openssl, aber mit welchen Parametern?

Sorry wenn ich dumm fragen muss. Aber das ist das erstmal das ich einen Client Verifizieren möchte.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: TCPServer/TCPClient SSL Verifizieren

  Alt 17. Apr 2023, 16:26
vom Format sind die Client- und ServerZertifikate gleich.
Erstellen kannst Du sie mit openssl.

Delphi-Quellcode:
   cmdParameter := format('req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout %s -out %s '+
                             '-subj "/C=DE/L=%s/O=%s/CN=%s" '+
                             '-config "%s"',[certFolder+keyFileName, certFolder+certFileName,
                                             '.', '.',
                                             '.'),
                                             openSslConfFile]);
    end;
  errorCode := shellExecute(0, 'open', pChar(openSslFolder+'openSSL.exe'), pchar(cmdParameter), nil, SW_Hide);

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:08 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