Delphi 10.4 Sydney 上的 Indy 和 SSL 问题

问题描述

我在编译使用 Indy 和 SSL 的应用程序时遇到问题,

TIdTCPClient 发送客户端证书以进行验证。相同的代码在 Delphi 10.3 上运行良好,但在 Delphi 10.4 上失败。不会调用 SSL 处理程序的回调方法,服务器会正​​常关闭连接,因为没有协商 ssl。

  FClient                         := TIdTCPClient.Create( nil );
  FClient.Host                    := trim(FAddress);
  FClient.Port                    := FPuerto;
  FClient.ConnectTimeout          := 10000;

  FIdSSLIOHandler                         := TIdSSLIOHandlerSocketopenSSL.Create( nil );
  FIdSSLIOHandler.Ongetpassword           := SSLgetpassword;
  FIdSSLIOHandler.SSLOptions.Mode         := sslmClient;
  FIdSSLIOHandler.SSLOptions.Method       := FSSLMetodo;
  FIdSSLIOHandler.SSLOptions.VerifyDepth  := 0;

  FIdSSLIOHandler.SSLOptions.RootCertFile := SSLArchivoCertificadoCA;
  FIdSSLIOHandler.SSLOptions.CertFile     := SSLArchivoCertificado;
  FIdSSLIOHandler.SSLOptions.KeyFile      := SSLArchivoClavePrivada;

  if( SSLDebug )then
  begin
     FIdSSLIOHandler.OnStatusInfo := SSLCallBack;
  end;

  FCLient.IOHandler := FIdSSLIOHandler;

在 Delphi 10.3 中,我在 OnStatusInfo 中得到这些行

18/01/2021 16:39:44.836 SSL status: "before/connect initialization"
18/01/2021 16:39:44.836 SSL status: "before/connect initialization"
18/01/2021 16:39:44.836 SSL status: "SSLv2/v3 write client hello A"
18/01/2021 16:39:44.868 SSL status: "SSLv3 read server hello A"
18/01/2021 16:39:44.868 SSL status: "SSLv3 read server certificate A"
18/01/2021 16:39:44.868 SSL status: "SSLv3 read server key exchange A"
18/01/2021 16:39:44.868 SSL status: "SSLv3 read server done A"
18/01/2021 16:39:44.868 SSL status: "SSLv3 write client key exchange A"
18/01/2021 16:39:44.868 SSL status: "SSLv3 write change cipher spec A"
18/01/2021 16:39:44.883 SSL status: "SSLv3 write finished A"
18/01/2021 16:39:44.883 SSL status: "SSLv3 flush data"
18/01/2021 16:39:45.086 SSL status: "SSLv3 read finished A"
18/01/2021 16:39:45.086 SSL status: "SSL negotiation finished successfully"
18/01/2021 16:39:45.086 SSL status: "SSL negotiation finished successfully"
18/01/2021 16:39:45.086 Cipher: name = DHE-RSA-AES256-SHA; description = DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
; bits = 256; version = TLSv1/SSLv3; 

但在 Delphi 10.4 中我只能得到

18/01/2021 16:33:07.228   10.215.134.243 Connection Closed Gracefully.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)