Вызов API Azure для Azure: удаленный сертификат недействителен из-за ошибок в цепочке сертификатов: UntrustedRoot

Мое клиентское веб-приложение .net6/C# развернуто в службе приложений Azure, которая вызывает вас через API (размещенный на виртуальной машине Azure). Для моего API требуется проверка подлинности MSAL. Клиентское приложение проходит проверку подлинности успешно, но фактический вызов API завершается со следующей ошибкой. сообщение об ошибке :

The SSL connection could not be established, see inner exception. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot at System.Net.Security.SslStream.SendAuthResetSignal(ProtocolToken message, ExceptionDispatchInfo exception) at System.Net.Security.SslStream.CompleteHandshake(SslAuthenticationOptions sslAuthenticationOptions) at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm) at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request

Обратите внимание, что я могу выполнять успешные вызовы API, если запускаю клиентское веб-приложение из своей локальной системы.

Эта ошибка исключения возникает только для вызовов Azure AppService для Azure API. Веб-приложение My Client, а также API являются внутренними для нашей компании. SSL-сертификат, используемый для API, выдается только моей организацией.

Я получил тот же сертификат PFX, который использовался для API, и загрузил его в раздел сертификатов AppService pfx. Но я все равно получаю то же сообщение об ошибке.

Удаленный сертификат недействителен из-за ошибок в сертификате цепочка: UntrustedRoot

Нужно ли мне делать что-либо, кроме загрузки pfx в раздел сертификатов службы приложений Azure.

Любые полезные указатели на правильную документацию, которая поможет мне устранить эту ошибку?

Кто-нибудь сталкивался с этим сценарием? Какие-нибудь мысли ? Сертификат pfx не принадлежит никакому публичному центру сертификации. это реальная проблема здесь?

🤔 А знаете ли вы, что...
C# позволяет создавать приложения с графическим пользовательским интерфейсом (GUI) на разных платформах.


296
1

Ответ:

Решено

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