IdHttpServerexception:接受与SSL的连接时出错。观察到违反协议的EOF;

时间:2015-08-28 19:43:03

标签: delphi openssl

我有一个Delphi 2007 TIdHttpServer Web应用程序(版本10)。我的 IdHTTPServer1.onexception 处理程序正在处理许多这些异常:

  

接受与SSL的连接时出错。观察到违反EOF的情况   协议

我也有最新版本的OpenSSL(1.0.2.4)。

我知道有一个MCVE(最小,完整和可验证的例子)是协议。但是我无法复制这个。这些例外发生在生产环境中。我所能做的只是记录IP地址。 IP地址是随机的。所以它似乎不是任何单一的垃圾邮件机器人#34;这可能是这样做的。

这些异常是否意味着正在使用我不支持的SSL版本发出请求?

我能做些什么来解决这个问题吗?

或者这是我不应该担心的事情吗?

以下是我设置服务器的代码:

ServerIOHandler := TIdServerIOHandlerSSLOpenSSL.Create(self);
ServerIOHandler.SSLOptions.CertFile := 'C:\xxxxx.crt';
ServerIOHandler.SSLOptions.KeyFile := 'C:\xxxxx.key';
ServerIOHandler.SSLOptions.RootCertFile := 'C:\yyyyyyy.crt';
ServerIOHandler.SSLOptions.Method := sslvSSLv23;
ServerIOHandler.SSLOptions.SSLVersions := [sslvSSLv23,sslvSSLv2, sslvSSLv3, sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2];
ServerIOHandler.OnGetPassword :=  GetSSLPassword;
IdHTTPServer1 := TEAIdHTTPServer.Create;
IdHTTPServer1.MaxConnections := 1000;
IdHTTPServer1.AutoStartSession := True;
IdHTTPServer1.SessionState := True;
IdHTTPServer1.OnCommandGet := MainGet;
IdHTTPServer1.onexception := IdHttpServerexception;
IdHTTPServer1.onlistenexception := IdHttpServerlistenexception;
IdHTTPServer1.onconnect := IdHttpServerConnect;
IdHTTPServer1.ondisconnect := IdHttpServerDisconnect;
idHttpServer1.ParseParams := True;
idHttpServer1.OnQuerySSLPort := QuerySSLPort;
idHttpServer1.IOHandler := ServerIOHandler;
idHttpServer1.Bindings.Add.Port := 80;
idHttpServer1.Bindings.Add.Port := 443;
IdHTTPServer1.Active := True;


procedure TMyProject.QuerySSLPort(APort: TIdPort; var VUseSSL: Boolean);
begin
  if APort=80 then begin
    vUseSSL := False;
  end else if APort=443 then begin
    vUseSSL := True;
  end else begin
    vUseSSL := False;
  end;
end;

0 个答案:

没有答案