Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Proxy и свой сертификат SSL / 4 сообщений из 4, страница 1 из 1
05.05.2021, 11:49
    #40068535
hlopotun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Proxy и свой сертификат SSL
Всем доброго дня,

хотел протестировать код на предмет работы через прокси.
1. Подняли свой прокси во внутренней сетке, и в ней же пробую обратиться к локальному адресу допустим 192.168.0.89 на порт 2017 к своему же сервису написанному на Delphi + Indy.
2. SSL сертификат сгенерировали сами, потом зарегистрировали на этой же машине как доверенный.
И тестиерумый сервис и клиент крутятся на одной и той же машине 192.168.0.89, сервис висит на порту 2017, прокси отдельная машина в той же сети (допустим 192.168.0.89:3128 без авторизации). Без прокси клиент соединяется с сервисом и всё работает как задумано. Как только вкючаю работу через прокси вываливает ошибку 503 Сервис недоступен. В чём может быть проблема?
Я грешу на самоподписанный сертификат, можно его проверку подлинности как то отключить в коде? Я попробовал на событие OnVerifyPeer повесить свою обработку и всегда возвращать True но он туда даже не заходит. Всё обрывается где то раньше. Админ говорит Proxy HTTP (не SOCKS4 или 5). Если регистрирую этот прокси в винде 10 (адрес, порт, убираю автоопределение, поле пользователя и пароль оставляю пустыми, чекбокс не использовать для локальных адресов оставляю не отмеченным) то при обращении через броузер https://localhost:2017/test получаю сообщение NET::ERR_CERT_COMMON_NAME_INVALID но далее могу зайти.
Посоветуйте как тут действовать, уже день убил на различные танцы, время давит.
Код:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
// переопределение реакции на OnVerifyPeer
function TSecLicenseUpdate.VerifyPeer(Certificate: TIdX509; AOk: Boolean; ADepth, AError: Integer): Boolean;
begin
  // Сюда даже не заходит
  Result := True; //AOk;
end;

function TSecLicenseUpdate.HTTPPost (AUrl: string; AParams: string;
  var AResponse: string; var AError: string): boolean;
var
  IdHTTP: TIdHTTP;
  Parameters: TStringStream;
  lIOHandlerSSL : TIdSSLIOHandlerSocketOpenSSL;
begin
  IdHTTP := TIdHTTP.Create (nil);
  Parameters := TStringStream.Create (AParams {пустая строка''}, TEncoding.UTF8);
  try
    try
      lIOHandlerSSL := TIdSSLIOHandlerSocketOpenSSL.Create (IdHTTP);
      lIOHandlerSSL.sslOptions.SSLVersions := [sslvTLSv1_2];
      lIOHandlerSSL.sslOptions.VerifyMode := [];
      lIOHandlerSSL.sslOptions.VerifyDepth := 0;
      lIOHandlerSSL.sslOptions.Mode := sslmUnassigned;

      if not StrEmpty(Params.ProxyServer)  then begin

          // если сюда не заходить всё работает
          lIOHandlerSSL.OnVerifyPeer := VerifyPeer; // переопределение реакции на OnVerifyPeer дабы соглашаться с левым сертификатом
          // IdHTTP.ProxyParams.BasicAuthentication := пробовал и True и False не помогло;
          IdHTTP.ProxyParams.ProxyServer               := Params.ProxyServer; //192.168.0.208
          IdHTTP.ProxyParams.ProxyPort                   := Params.ProxyPort;    //3128
          //IdHTTP.ProxyParams.ProxyUsername        := Params.ProxyUsername;
          //IdHTTP.ProxyParams.ProxyPassword         := Params.ProxyPassword;
        end;

      IdHTTP.IOHandler := lIOHandlerSSL;

      AResponse := idHTTP.Post(AUrl {https://localhost:2017/Test}, Parameters); // тут вываливает исключение EIdHTTPProtocolException 'HTTP/1.1 503 Сервис недоступен'
.....


...
Рейтинг: 0 / 0
05.05.2021, 14:15
    #40068572
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Proxy и свой сертификат SSL
Так кто вываливает 503? Сервис или прокся?
Снифай трафик, чтобы выяснить, на каком этапе затык.
А вместо индей, где хз чего наворочено, в качестве клиента юзай curl в режиме максимально подробного вывода
...
Рейтинг: 0 / 0
05.05.2021, 15:00
    #40068589
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Proxy и свой сертификат SSL
https://onoutbukax.ru/net-err-cert-common-name-invalid/
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.05.2021, 16:05
    #40068627
hlopotun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Proxy и свой сертификат SSL
вопрос снят, посмотрел лог на proxy и увидел что обращение на localhost идёт. Откуда прокси знать где мой localhost :)
Как всегда, ищещь что то сложное а проблема перед носом и простая.

Спасибо за участие.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Proxy и свой сертификат SSL / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]