![]() |
TCPServer/TCPClient SSL Verifizieren
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 ![]() |
AW: TCPServer/TCPClient SSL Verifizieren
.. 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 |
AW: TCPServer/TCPClient SSL Verifizieren
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 ![]() |
AW: TCPServer/TCPClient SSL Verifizieren
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. |
AW: TCPServer/TCPClient SSL Verifizieren
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. |
AW: TCPServer/TCPClient SSL Verifizieren
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. |
AW: TCPServer/TCPClient SSL Verifizieren
Zitat:
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. |
AW: TCPServer/TCPClient SSL Verifizieren
Zitat:
Daher einfach das Client-Zertifikat im Explorer öffnen. Alternativ: ![]() (das setzt jedoch voraus, dass das Zertifikat im Zertifikatsspeicher abgelegt wurde) |
AW: TCPServer/TCPClient SSL Verifizieren
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. |
AW: TCPServer/TCPClient SSL Verifizieren
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 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 by Thomas Breitkreuz