TIdhttp HTTPS рукопожатие не удалось - PullRequest
0 голосов
/ 26 сентября 2018

Я использую Indy 10 для подключения к SOAP Web Service.Когда я запускаю код с запущенным Fiddler, я обнаруживаю, что веб-сервер не ведет переговоры о нашем рукопожатии.Я приложил снимок экрана инспекторов Fiddler.

Мы смогли успешно подключиться к серверу, используя условно-бесплатное приложение "SoapUI".Я приложил снимок экрана инспекторов при использовании SoapUI.

Одна вещь, которую я заметил, это то, что SoapUI использует другую версию SSL / TLS.Как настроить Indy для использования той же версии?

Любое другое понимание того, почему мой вызов не работает?

procedure TForm6.Button1Click(Sender: TObject);
var
  idhttp: TIdhttp;
  IdSSLIOHandlerSocket1 : TIdSSLIOHandlerSocketOpenSSL;
  Params   : TStringStream;
begin
    idhttp := TIdhttp.Create(nil);
    IdSSLIOHandlerSocket1 := TIdSSLIOHandlerSocketOpenSSL.create(nil);
    idhttp.ProxyParams.ProxyServer := '127.0.0.1';
    idhttp.ProxyParams.ProxyPort := 8888 ;
    idhttp.Request.ContentType := 'text/xml';
    idhttp.Request.CharSet:='utf-8';
    idhttp.request.connection := 'keep-alive';
    idhttp.Request.CustomHeaders.AddValue('Content-Type','text/xml;charset=UTF-8');
    idhttp.Request.CustomHeaders.AddValue('SOAPAction','"http://ws.nemsis.org/SubmitData"');
    idhttp.Request.CustomHeaders.AddValue('Host','nemsis.org:443');
    idhttp.Request.BasicAuthentication := True;
    idhttp.request.username := 'xxxxx';
    idhttp.request.password := 'yyyyy';
    with IdSSLIOHandlerSocket1 do begin
      SSLOptions.Method := sslvTLSv1_2;
      SSLOptions.SSLVersions := [sslvTLSv1_2];
      SSLOptions.VerifyMode := [];
      SSLOptions.VerifyDepth := 2;
    end;
    with IdHTTP do begin
      IOHandler := IdSSLIOHandlerSocket1;
    end;
    Params := TStringStream.Create(filetostring(ExtractFileDir(ParamStr(0))+'\sample.xml'));
    idhttp.Post('https://nemsis.org:443/NemsisV3Validator4/NemsisWsService',Params);
end;

Failed Call: enter image description here

Успешный вызов с использованием SoapUI: enter image description here

...