Подключение к серверу Squid с использованием аутентификации NTLM с компонентами Indy - PullRequest
1 голос
/ 27 мая 2010

Кто-нибудь смог успешно подключиться к местоположению https через настройку прокси-сервера Squid с аутентификацией NTLM с использованием компонентов Indy (10.XX)?

Я могу успешно подключиться к http-расположению, однако с помощью https Indy возвращает ошибку EAbort.

Кроме того, я могу получить равный доступ к http / https, если использую FreeProxy в качестве прокси-сервера (с аутентификацией NTLM). Однако Squid NTLM + https не работает? Кто-нибудь заставил это работать?

Спасибо Раэль

1 Ответ

1 голос
/ 17 марта 2011

Вот я

1 - Прежде всего, убедитесь, что вы обновили исходный код indy.

2 - Загрузите DLL-файлы здесь Indy SLL DLLS и поместите их в вывод вашего приложения

3 - Убедитесь, что у вас TIdSSLIOHandlerSocketOpenSSL подключен к свойству TidHttp IOHandler со следующими настроенными свойствами:

SSLOptions.Method := sslvSSLv23;
SSLOptions.Mode := sslmUnassigned;
OnVerifyPeer := SSLIOHandlerVerifyPeer;
SSLOptions.VerifyMode := [sslvrfPeer];
SSLOptions.VerifyDepth := 2;

4 - Напишите это событие:

function SSLIOHandlerVerifyPeer(Certificate: TIdX509; AOk: Boolean; ADepth, AError:    Integer): Boolean;
begin
  Result := True;
end;

5 - Включить эти единицы в пункт о вашем использовании:

IdAuthentication, IdAuthenticationDigest, IdAuthenticationNTLM

6 - Установите для события TidHttp.OnProxyAuthorization следующее:

procedure IdHTTPProxyAuthorization(Sender: TObject; Authentication: TIdAuthentication; var Handled: Boolean);
begin
  Handled := False;
end;

7 - Установите эти свойства:

IndyHttpClient.HTTPOptions := IndyHttpClient.HTTPOptions + [hoKeepOrigProtocol] + [hoInProcessAuth];
IndyHttpClient.ProtocolVersion := pv1_1;
IndyHttpClient.ProxyParams.ProxyServer := 'you proxy address here'
IndyHttpClient.ProxyParams.ProxyPort := 8080;
IndyHttpClient.ProxyParams.ProxyUsername := 'your proxy username here';
IndyHttpClient.ProxyParams.ProxyPassword := 'your proxy psw here';

Теперь тебе пора. Этот код также будет работать с Microsoft ISA Server. Если вы хотите, чтобы я, я могу отправить вам полный исходный код моего компонента. Я не буду размещать это здесь, потому что это было написано на португальском языке (если кто-то не говорит, что это хорошо, чтобы отправлять).

...