четверг, 2 марта 2017 г.

HTTP hostname and TLS SNI hostname mismatch

При использование компонента Synapse в Delphi может возникать ошибка "Error 1013 HTTP hostname and TLS SNI hostname mismatch" которая говорит нам о том, что хост в HTTP заголовке и заголовке SSL соединения не сходятся.




Решение данной ошибки достаточно простое:

1. Топаем сюда: GITHUB  и обновляем модули Synapse.
2. Качаем DLL файлы  libeay32.dll и ssleay32.dll отсюда: MEGA
3. Обновляем функцию работы с сетью:

function HTTPGet(url: string): string;
var HTTP:THTTPSend; rez:TStringList;
begin
  HTTP:=THTTPSend.Create;
  HTTP.Sock.SSL.SSLType:=LT_TLSv1_2;
  HTTP.AddPortNumberToHost:=false;
  HTTP.UserAgent:='Mozilla/5.0';
  HTTP.Protocol:='1.1';
  HTTP.HTTPMethod('GET', url);
  rez:=TStringList.Create;
  rez.LoadFromStream(HTTP.Document);
  result:=rez.Text;
  rez.Free;
  HTTP.Free;
end;

Теперь мы без проблем можем подключаться к сайтам с защитой от CloudFlare.

2 комментария: