ASP.NET Core C#, размещенный в LInux, не может подключиться к APIApache

Ответить
Anonymous
 ASP.NET Core C#, размещенный в LInux, не может подключиться к API

Сообщение Anonymous »


Я разрабатываю веб-сайт, используя asp.net core 7 и C#. Этот веб-сайт получает данные из API с помощью HttpClient и хорошо работает в ОС Windows. Но когда я размещал хостинг в ОС Linux с использованием Apache, у меня возникли проблемы: я не мог напрямую подключиться к API (поставщик), данные, полученные от API, не соответствовали ожидаемым данным. По моему мнению, проблема связана с SSL/TLS версии 1.2 или TLS 1.3. Потому что, когда я пытаюсь установить соединение CURL и wget в Linux, отображается SSL от API.

Вот код инициализации моего соединения HttpClient:

builder.Services.AddHttpClient() .ConfigureHttpClient((sp, httpClient) => { httpClient.BaseAddress = новый Uri("https://subdomain.domain.com/"); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12 | ТипПротокола Безопасности.Tls13; }) .ConfigurePrimaryHttpMessageHandler(() => новый HttpClientHandler() { UseCookies = правда, Разрешитьавторедирект = правда, МаксСоединенияПерСервер = 20, CheckCertificateRevocationList = true, ClientCertificateOptions = ClientCertificateOptions.Automatic, SslProtocols = System.Security.Authentication.SslProtocols.Tls12 | System.Security.Authentication.SslProtocols.Tls13, ServerCertificateCustomValidationCallback = (сообщение, сертификат, цепочка, sslPolicyErrors) => { return true; }, CookieContainer = clientCookie }); Ниже приведены результаты тестирования с использованием CURL:

* Подключено к порту subdomain.domain.com (xxx.xxx.xxx.xxx) 443 (#0). * ALPN: предлагает h2, http/1.1. * TLSv1.3 (OUT), подтверждение TLS, приветствие клиента (1): * CA-файл: /etc/ssl/certs/ca-certificates.crt * CApath: /etc/ssl/certs * TLSv1.3 (IN), подтверждение TLS, приветствие сервера (2): * TLSv1.3 (IN), подтверждение TLS, зашифрованные расширения (8): * TLSv1.3 (IN), подтверждение TLS, сертификат (11): * TLSv1.3 (IN), подтверждение TLS, проверка CERT (15): * TLSv1.3 (IN), подтверждение связи TLS, завершено (20): * TLSv1.3 (OUT), изменение шифра TLS, изменение спецификации шифрования (1): * TLSv1.3 (OUT), подтверждение связи TLS, завершено (20): * SSL-соединение с использованием TLSv1.3/TLS_AES_256_GCM_SHA384. * ALPN: сервер принимает h2 * Сертификат сервера: * субъект: C=США; ST=Калифорния; L = Сан-Франциско; О = Cloudflare, Inc.; CN=sni.cloudflaressl.com * дата начала: 20 января 00:00:00 2023 г. по Гринвичу * дата истечения срока действия: 20 января 23:59:59 2024 г. по Гринвичу. * subjectAltName: хост «subdomain.domain.com» соответствует сертификату «*.domain.com». * эмитент: C=США; О = Cloudflare, Inc.; CN=Cloudflare Inc ECC CA-3 * SSL-сертификат проверен, ок. * с использованием HTTP/2 * h2h3 [:метод: GET] * h2h3 [:путь: /api/auth/data] * h2h3 [:схема: https] * h2h3 [:authority: subdomain.domain.com] * h2h3 [принять: application/json, text/plain, */*] * h2h3 [accept-language: en-US,en;q=0.9,id;q=0.8] * h2h3 [заголовки запросов контроля доступа: x-app, x-domain-id, x-ismobile, x-language] * h2h3 [метод-запроса-управления-доступом: GET] * h2h3 [управление кешем: без кеша] * h2h3 [происхождение: https://target.com] * h2h3 [реферер: https://target.com/] * h2h3 [sec-fetch-dest: пусто] * h2h3 [sec-fetch-mode: cors] * h2h3 [sec-fetch-site: межсайтовый] * h2h3 [т.е: трейлеры] * h2h3 [пользовательский агент: MyBrowser] * Использование идентификатора потока: 1 (простой дескриптор 0x558b308cd8a0) > ПОЛУЧИТЬ /api/auth/data HTTP/2 > Хост: субдомен.домен.com > принять: application/json, text/plain, */* > принять-язык: en-US,en;q=0.9,id;q=0.8 > Заголовки запросов контроля доступа: x-app, x-domain-id, x-ismobile, x-language > метод-запроса-управления доступом: GET > контроль кэша: без кэша > соединение: поддержание активности > происхождение: https://target.com > реферер: https://target.com/ > sec-fetch-dest: пусто > режим сек-выборки: cors > sec-fetch-site: межсайтовый > т.е: трейлеры > пользовательский агент: MyBrowser > * TLSv1.3 (IN), рукопожатие TLS, билет на пресс-конференцию (4): * TLSv1.3 (IN), рукопожатие TLS, билет на пресс-конференцию (4): * старый идентификатор сеанса SSL устарел, удаляем < HTTP/2 451 < дата: воскресенье, 29 октября 2023 г., 02:17:23 GMT
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»