У меня есть следующие рабочие настройки:
- Контейнер , обслуживающий приложение ASP.net Core OData на порту 80
- Вход публикация веб-приложения в виде HTTPS с letsencrypt-сертификатом
Все работало как положено. Сервис OData доступен через HTTPS. Но теперь я хотел соединиться с PowerBI с веб-сервисом, и с помощью Fiddler я увидел, что PowerBi не только вызывает / odata / $ metadata , но и вызывает / OData / . Эта конечная точка публикует описание метаданных меньшего размера со следующей записью:
"@odata.context": "http://my-url/odata/$metadata"
Этот URL-адрес используется в последующем вызове PowerBI и приводит к 308 (перенаправление). Это приводит к ошибке в PowerBI. Возвращенный URL должен использовать HTTPS: //. В моей среде разработки с самозаверяющим сертификатом он работает и возвращает правильный адрес в зависимости от используемого протокола.
Каждый найденный мной экзамен, описывающий использование HTTPS, нуждается в сертификате. Но это не имеет смысла. Контейнер не должен знать сертификат. Сертификат определяется вне (Ingress) приложения.
Другим возможным решением является общесистемная замена строки для адреса HTTP. Но это звучит странно и неправильно для меня.
Я также пытался вручную перенаправить порт на 443, но это не работает.