Сертификат отклонен при использовании прокси - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно подключиться к веб-сервису REST и использовать сертификат для своей аутентификации.

Все работает отлично, когда я подключаюсь из-за пределов нашей корпоративной сети и НЕ использую прокси-сервер.

Проблема в том, что я должен использовать сервис изнутри нашей сети, где я должен использовать прокси-сервер.Когда я пытаюсь изнутри сети, я просто получаю «401 - Несанкционированный»

    private static void RestWithCert(string certificatePath,string baseUrl,string method)
    {
        HttpClientHandler handler = new HttpClientHandler(); 

        //when trying the code OUTside our company network I remove the proxy below
        handler.Proxy = new WebProxy("http://proxy.company.dk");

        handler.ClientCertificates.Add(new X509Certificate2(certificatePath, "password"));

        HttpClient client = new HttpClient(handler);
        client.BaseAddress = new Uri(baseUrl);
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        HttpResponseMessage response = client.GetAsync(method).Result;

        var status = response.StatusCode;
    }

За пределами сети, без прокси: Status = OK

Внутри сети, с прокси: Status =Несанкционированный

Внутри сети, без прокси: истекло время ожидания соединения

У меня НЕТ контроля над прокси или веб-службой, к которой я пытаюсь получить доступ

Что происходит?Прокси-сервер перехватывает сертификат и заменяет его?

1 Ответ

1 голос
/ 28 апреля 2019

Прокси-сервер может перехватывать трафик SSL и подключаться к целевому серверу, действуя как ManInTheMiddle, или разрешать установление SSL-подключения непосредственно к целевому серверу.

Когда требуются клиентские сертификаты, прокси-сервер должен разрешатьпрямое соединение, потому что прокси не может предоставить действительный сертификат, когда он нужен целевому серверу.Во время SSL-рукопожатия некоторые взаимозаменяемые данные подписываются закрытым ключом сертификата клиента для проверки подлинности сообщения, и прокси-сервер не имеет этого личного кэ

Возможно, ваш прокси-сервер захватывает трафик.Я предлагаю проверить это.Вы можете проверить, соответствует ли сертификат, полученный во время SSL-соединения, целевому серверу или прокси

...