问题描述
我在编译使用 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 (将#修改为@)