none
IIS frontend и backend RRS feed

  • Вопрос

  • Добрый день коллеги, зашел в тупик, прошу помощи.

    Есть два сервера IIS, один frontend (FE), второй backend(BE) на обоих крутится ASP.NET приложение. На обоих серверах настроена аутентификация на сертификату.

    На FE many to one

    На BE one to one.

    Если обратиться по отдельности на каждый сервер echo запрос проходит (аутентификация отрабатывает). Но если обращаться через FE к BE, как должно  работать аутентификация на FE проходит, а дальше ошибка, что BE не смог установить защищенное соединение с BE.

    Подозреваю, что какие-то проблемы с мапингом сертификата, т.е. есть какие-то нюансы настройки мапинга, когда работаешь через FE или нужен какой-то особенный сертификат.

    Вот вывод echo запроса при обращении через FE к BE.

    { "User": { "Name": "A28EA116EE7A4A27ED6FA690B305531C579F3A83", "IsAuthenticated": true, "AuthenticationType": "" }, "Url": "https://test-service-fe.avp.ru:443/api/v1.0/echo", "MachineName": "SERVICE-FE", "ClientIp": "10.10.1.7", "Certificate": { "Subject": "E=admin@kl-test.ru, CN=Администратор, CN=Users, DC=KL-TEST, DC=local", "Thumbprint": "A28EA116EE7A4A27ED6FA690B305531C579F3A83" }, "Version": "2.10.0.3", "Request": { "Uri": "https://test-service-fe.avp.ru:443/api/v1.0/echo", "Method": { "Method": "GET" }, "Headers": [ { "Key": "Cache-Control", "Value": [ "max-age=0" ] }, { "Key": "Connection", "Value": [ "keep-alive" ] }, { "Key": "Accept", "Value": [ "text/html", "application/xhtml+xml", "application/xml; q=0.9", "image/webp", "*/*; q=0.8" ] }, { "Key": "Accept-Encoding", "Value": [ "gzip", "deflate", "sdch", "br" ] }, { "Key": "Accept-Language", "Value": [ "ru-RU", "ru; q=0.8", "en-US; q=0.6", "en; q=0.4" ] }, { "Key": "Host", "Value": [ "test-service-fe.avp.ru" ] }, { "Key": "User-Agent", "Value": [ "Mozilla/5.0", "(Windows NT 6.1; Win64; x64)", "AppleWebKit/537.36", "(KHTML, like Gecko)", "Chrome/51.0.2704.84", "Safari/537.36" ] }, { "Key": "Upgrade-Insecure-Requests", "Value": [ "1" ] } ] }, "Backend": { "Certificate": { "Subject": "CN=test_one", "Thumbprint": "054B7B682A95BBCE95C1EB9A3EB5C527E81D80E2" }, "Echo": "System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.\r\n в System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)\r\n в System.Net.Http.HttpClientHandler.

    GetResponseCallback(IAsyncResult ar)\r\n --- Конец трассировки внутреннего стека исключений ---\r\n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n в KL.WLInfo.Backend.Client.BackendClient.<SendCore>d__e.MoveNext() в c:\\BuildAgent\\work\\a21f505f1cee873c\\src\\WLInfo.Backend.Client\\BackendClient.cs:строка 94\r\n--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---\r\n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n в KL.WLInfo.Backend.Client.BackendClient.<SendCore>d__6.MoveNext() в c:\\BuildAgent\\work\\a21f505f1cee873c\\src\\WLInfo.Backend.Client\\BackendClient.cs:строка 77\r\n--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---\r\n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n в KL.WLInfo.Backend.Client.BackendClient.<SendAsync>d__0`1.MoveNext() в c:\\BuildAgent\\work\\a21f505f1cee873c\\src\\WLInfo.Backend.Client\\BackendClient.cs:строка 39\r\n--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---\r\n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n в KL.WLInfo.Frontend.Web.Services.BackendService.<SendAsync>d__0`1.MoveNext() в c:\\BuildAgent\\work\\a21f505f1cee873c\\src\\WLInfo.Frontend.Web\\Services\\BackendService.cs:строка 0\r\n--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---\r\n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n в KL.WLInfo.Infrastructure.Retry.FixedInterval.<>c__DisplayClass5`1.<<ExecuteAsync>b__4>d__7.MoveNext() в c:\\BuildAgent\\work\\a21f505f1cee873c\\src\\WLInfo.Infrastructure\\Retry\\FixedIntervalRetryStrategy.cs:строка 0\r\n--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---\r\n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n в KL.WLInfo.Infrastructure.Retry.FixedInterval.<ExecuteAsync>d__0.MoveNext() в c:\\BuildAgent\\work\\a21f505f1cee873c\\src\\WLInfo.Infrastructure\\Retry\\FixedIntervalRetryStrategy.cs:строка 64\r\n--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---\r\n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n в KL.WLInfo.Infrastructure.Retry.FixedInterval.<ExecuteAsync>d__a`1.MoveNext() в c:\\BuildAgent\\work\\a21f505f1cee873c\\src\\WLInfo.Infrastructure\\Retry\\FixedIntervalRetryStrategy.cs:строка 82\r\n--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---\r\n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n в KL.WLInfo.Frontend.Web.Services.BackendServiceMonitor.<SendAsync>d__0`1.MoveNext() в c:\\BuildAgent\\work\\a21f505f1cee873c\\src\\WLInfo.Frontend.Web\\Services\\BackendServiceMonitor.cs:строка 41\r\n--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---\r\n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n в KL.WLInfo.Frontend.Web.Controllers.EchoController.<Get>d__2.MoveNext() в c:\\BuildAgent\\work\\a21f505f1cee873c\\src\\WLInfo.Frontend.Web\\Controllers\\EchoController.cs:строка 41" } }

    Буду признателен за любые наводки и подсказки куда копать. Спасибо.

    1 июля 2016 г. 10:02

Ответы

  • Проблему решил, необходимо было изменить учетную запись запуска пула на NetworkService или на доменную учетную запись с необходимыми правами.
    • Помечено в качестве ответа EFIMOVDI 4 июля 2016 г. 12:26
    4 июля 2016 г. 12:26