Внутренняя https-связь локального кластера kubernetes для документа обнаружения (сервер duende)
У меня есть локальный кластер kubernetes (рабочий стол docker), на котором я хочу развернуть защищенное приложение.
У меня есть клиент angular, api и duende в виде трех отдельных развертываний и приложений, скрытых за nginx. Это первый раз, когда я пытаюсь работать с сетью/devops, поэтому я совершенно потерян и в основном пытаюсь просто следовать документации и руководствам, которые я нашел.
Мое угловое приложение может подключаться и входить на сервер duende, используя URL-адреса, настроенные в моем локальном DNS (account.local, application.local) через https. Проблема, которую я подозреваю, заключается в том, что я не могу подключиться к серверу duende внутри кластера, что должен (?) сделать API.
У меня есть следующее в API:
builder.Services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(options =>
{
var host = Environment.GetEnvironmentVariable("DUENDE_SERVICE_SERVICE_HOST");
var port = Environment.GetEnvironmentVariable("DUENDE_SERVICE_SERVICE_PORT");
options.Authority = $"http://{host}:{port}";
options.ApiName = "api";
options.RequireHttpsMetadata = false;
});
Я также пробовал с
https://{host}:{port}
а также
options.RequireHttpsMetaData = true
.
На моем сервере Duende у меня есть следующее:
builder.Services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor |
ForwardedHeaders.XForwardedProto;
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
});
а также
app.Use((context, next) =>
{
context.Request.Scheme = "https";
return next();
});
app.UseForwardedHeaders();
Проблема, с которой я столкнулся, заключается в том, что я не могу получить документ об открытии от duende. Ошибка внутри модуля, которую я получаю:
IDX20803: невозможно получить конфигурацию с: http://10.111.187.138:5002/.well-known/openid-configuration .
Когда я пытаюсь свернуться изнутри стручка, я получаю следующее:
curl http://10.111.187.138:5002
Ответ: все в порядке (моя "проверка здоровья")
curl https://10.111.187.138:5002
Ответ: curl: (35) ошибка:1408F10B: подпрограммы SSL:ssl3_get_record: неверный номер версии
curl http://10.111.187.138:5002/.well-known/openid-configuration
Ответ: я получаю правильный ответ, хорошо известную конфигурацию со ссылками https, которую я хочу, когда мое угловое приложение входит в систему, используя конечную точку https в качестве своего авторитета.
Кто-нибудь знает, что я могу сделать, чтобы это работало внутри кластера:
curl https://10.111.187.138:5002
Еще один вопрос, который у меня есть, я могу получить ответ при использовании следующего:
curl http://account.local
(это мой переопределенный DNS)
Это, однако, возвращает 404
curl -I http://account.local/.well-known/openid-configuration
И, наконец, это:
curl https://account.local
возвращает ошибку: curl: (7) Не удалось подключиться к порту account.local 443: соединение отклонено
Однако в моем браузере я без проблем могу получить доступ к https://account.local и https://account.local/.well-known/openid-configuration .