IdentityServer4 + Docker: удаленный сертификат недействителен в соответствии с процедурой проверки - PullRequest
0 голосов
/ 24 августа 2018

Я следую инструкциям по быстрому запуску IdentityServer4 для настройки защищенного API и доступа к нему с помощью клиента ( Образец 2 ). Я использую .Net Core + Docker для Windows (контейнеры Windows) для запуска моего тестового приложения.

Настройка должна выглядеть примерно так:

enter image description here

Когда я звоню https://<identity-url>/.well-known/openid-configuration, я получаю конфигурацию, но с заранее известной страницей "небезопасно - ты уверен".

API 1 защищен:

services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
    .AddIdentityServerAuthentication(options =>
        {
            options.Authority = "https://<identity-url>";
            options.RequireHttpsMetadata = this.Environment.IsProduction();
            options.ApiName = "api1";
        });

и Config.csIdentityServer) в соответствии с документацией по быстрому запуску.

Проблема:

Когда я пытаюсь позвонить API 1 с моего Client, мне нужно сначала получить доступ к IdentityServer (в соответствии с быстрым стартом) с помощью:

var disco = await DiscoveryClient.GetAsync("https://<identity-url>");
if (disco.IsError)
{
    Console.WriteLine(disco.Error);
    return BadRequest(disco.Exception);
}

Это приводит к этой ошибке

Удаленный сертификат недействителен в соответствии с проверкой процедура.

Я использую сертификаты по умолчанию от .net core templates for web applications и думаю, что проблема как-то связана с тем, что сертификат самоподписан. Это правильно?

Как правильно доверять самозаверяющему сертификату в другом контейнере, чтобы можно было установить соединение?

1 Ответ

0 голосов
/ 19 октября 2018

У меня та же проблема с Web Api и Swagger, что и с клиентом. Это не проблема сервера идентификации, а ограничение SSL. Если вы хотите использовать SSL и HTTPS-соединение с вашим Ids4 на удаленном сервере, единственный способ - купить сертификат в ЦС. Помещение самоподписанного сертификата в хранилище доверенных сертификатов также не работает. Вместо этого вы можете использовать протокол http, но, разумеется, только для целей тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...