Mir schwant da schon wieder übles... Zertifikate werden normalerweise nicht auf diese Weise verteilt, es sei denn es sind selbst erstellte weil man sich das Brimborium mit den CA sparen wollte.
Die biegt man dann mit viel Verrenkungen in den Zertifikatsspeicher von Windows rein, dreht an den Sicherheitseinstellungen rum bis die Verbindung "irgendwie" läuft und das nächstbeste Windows-Update dreht die Einstellungen wieder zurück. Meistens weil die Zertifikatskette nicht passt oder das Stammzertifikat wiederrufen wurde.
Für gewöhnlich stellt der Webserver die Public Keys selbst zur Verfügung und die Komponenten handeln die Verschlüsselung aus. Bei den Indys kann an die Prüftiefe noch einstellen (Zerti-Kette bis zum Stamm prüfen oder nicht), bei den REST-Komponenten geht das schon nicht mehr, weil alles an den Systemeinstellungen hängt.
Also kurz gesagt: Vergiss erstmal die Zertifikatsdateien. Schreib einfach statt http:// dann https:// in den
URL und schau was passiert. Ggf. noch den Port manuell von 80 auf 443 ändern, mehr sollte eig. nicht nötig sein.
Danke, auch an mjustin, für die Antworten.
Vielleicht noch mal was zum Hintergrund. Unser Kunde bekommt von der IT-Abteilung dessen Netzwerk und auch Computer er nutzt das Zertifikat geschickt. Unser Kunde schickt das Zertifikat mir. Es fehlen jegliche Anweisungen, was ich a) mit dem Zertifikat machen soll oder b) wie man testen kann dass es funktioniert. Absolut null Info. Frage ich dann bei dieser IT-Abteilung nach, die Ansprechpartner auch für unseren Kunden ist, dann wissen diese Leute von der IT wenig bis nichts zu dem Zertifikat zu sagen. Bisher habe ich in der
URL eine
IP-Adresse verwendet (was bei HTTP wunderbar funktioniert hat), heute erfahre ich, ich soll den vollen DNS-Namen verwenden.
Dann habe ich im OnValidateCertificate des TRestClient das Accepted auf True gesetzt, wie ich es im Netz gefunden hatte, dass man das machen soll.
Und schon lautete die Fehlermeldung nicht mehr:
REST-Anforderung fehlgeschlagen: Server Certificate not accepted
sondern:
REST-Anforderung fehlgeschlagen: Unspecified certificate from client
Aber es kommt noch doller. Im OnValidateCertificate habe ich mir mal alle zur Verfügung stehenden Infos des „const [Ref] Certificate: TCertificate“ ausgeben lassen. Schön war schon mal, da stand tatsächlich etwas, was mit dem Zertifikat zu tun hatte. Aber, aufgemerkt, da stand nicht die
URL drin die ich verwenden sollte, sondern es war noch ein Zeichen anders (zusätzlich) in der
URL. Als ich die
URL dann so geschrieben habe, wie sie auch im Zertifikat hinterlegt ist, kam keine Fehlermeldung mehr bzgl. des Zertifikats!
Daten habe ich aber trotzdem keine Empfangen, Fehlermeldung:
REST-Anforderung fehlgeschlagen: Execution of request terminated with unknown error
Es wird so sein wie so oft. Diese Test-Schnittstelle ist bei der IT-Abteilung gar nicht scharf geschaltet. Ich warte noch auf Feedback.
Ach ja, mein erster Gedanke war auch, ich nehme einfach statt http:// dann
https://, aber das funktionierte nicht. Vermutlich alleine deshalb nicht, weil ich a) mit
IP-Adresse werkelte und b) weil die
URL auch noch falsch war.
Ich berichte, wenn es was Neues gibt. Gruß, Markus