Delphi Indy-Server mit EC-Zertifikaten

· Funktionen

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.