Indy 在使用 openSSL 库时支持 RSA 和 EC 证书,但默认情况下,EC 证书可以使用不同曲线创建,而 openSSL 库仅配置了其中部分曲线。因此,如果您使用的 EC 证书的曲线未包含在 openSSL 库的默认配置中,该证书将无法正常工作。
为避免此问题,Indy 服务器现新增了一个名为 CurveList 的属性,您可以在其中设置支持的曲线名称。
CurveList 属性也受我们的免费 sgcIndy 库支持。
示例
要配置使用 brainpoolP256r1 曲线的 EC 证书,请在启动连接之前设置以下曲线(适用于服务器和客户端组件):
// 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';
这样,客户端将支持标准曲线(如 secp256r1 曲线)以及 brainpoolP256r1 曲线。
