Guten Morgen,
das kann ich dir leider nicht ohne weiteres beantworten, aber bei einem schnellen Blick kommt bei System.Net.URLClient.TCertificate ja nicht allzuviel zurück.
Ich benutze (bereits seit Jahren) die Secureblackbox Komponenten. Auch dort gibt es ein .OnCertificateValidate - die Funktion, die aufgerufen wird, hat folgende Parameter:
Delphi-Quellcode:
procedure TMyClass.SSLHandlerCertificateValidate(
Sender: TObject; Certificate: TElX509Certificate; var Validity: TSBCertificateValidity; var Reason: TSBCertificateValidityReason);
In dem Event empfiehlt der Hersteller, die (SecureBlackbox) Funktion "TElX509CertificateValidator" zu nutzen. Die stellt sicher, dass die Zertifikatskette gültig ist und kein Zertifikat zurück gerufen worden ist - es wird also auch die CRL abgerufen - haben wir noch gar nicht erwähnt, ist aber auch wichtig!
Wenn du die Eigenschaften des Zertifikates (also ob es sich genau um *dieses eine* Zertifikat handelt) prüfen möchtest, brauchst du "TElX509CertificateValidator" im Prinzip nicht, die notwendigen Daten sind in dem Certificate-Objekt enthalten.
Du musst für dich erst einmal eine Grundsatzentscheidung treffen, wie du die Kommunikation sichern willst:
1. Willst du "nur" eine gültige Kette sicherstellen?
2. Willst du auf ein bestimmtes Zertifikat prüfen (ggf. in Ergänzung zu 1.)
3. Was willst du in der Zertifikatskette prüfen?
Quellen:
https://www.secureblackbox.com/kb/he...evalidate.html
https://www.secureblackbox.com/kb/he...validator.html
Grüße
Sebastian
Nachtrag:
Ich meine, dass das OnCertificateValidate Event bei den Secureblackbox Komponenten mehrfach gefeuert wird - für jedes Zertifikat in der Kette. Ganz 100% bin ich mir aber nicht mehr.