Indy unterstützt RSA- und EC-Zertifikate, wenn die openSSL-Bibliotheken verwendet werden. EC-Zertifikate können jedoch mit unterschiedlichen Kurven erstellt werden, und die openSSL-Bibliotheken sind standardmäßig nur für einige dieser Kurven konfiguriert. Wenn du also ein EC-Zertifikat verwendest, das nicht standardmäßig von den openSSL-Bibliotheken abgedeckt ist, funktioniert es nicht richtig.
Um dieses Problem zu umgehen, enthalten die Indy-Server jetzt eine neue Eigenschaft namens CurveList, in der du die unterstützten Kurvennamen festlegen kannst.
Die Eigenschaft CurveList wird auch von unserer kostenlosen sgcIndy-Bibliothek unterstützt.
Beispiel
Um ein EC-Zertifikat zu konfigurieren, das die Kurve brainpoolP256r1 verwendet, setze vor dem Verbindungsaufbau die folgenden Kurven (gilt für Server- und Client-Komponenten).
// client component TsgcWebSocketClient1.TLSOptions.OpenSSL_Options.CurveList := 'P-521:P-384:P-256:brainpoolP256r1'; // server component TsgcWebSocketHTTPServer1.SSLOptions.OpenSSL_Options.CurveList := 'P-521:P-384:P-256:brainpoolP256r1';
So unterstützt der Client die Standardkurven (wie die secp256r1-Kurve) und zusätzlich die brainpoolP256r1-Kurve.
