Не прослушивается порт https
пытаюсь подключить asp.net core 8 к https. У меня есть сертификат pfx + пароль.
Подключил в Program.cs сертификат.
Сразу прописал в docker файле подписал копирование сертификата
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 443
EXPOSE 80
COPY ["steklm2024.pfx", "/app/steklm2024.pfx"]
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["ZarplatServer/ZarplatServer.csproj", "ZarplatServer/"]
RUN dotnet restore "./ZarplatServer/./ZarplatServer.csproj"
COPY . .
WORKDIR "/src/ZarplatServer"
RUN dotnet build "./ZarplatServer.csproj" -c $BUILD_CONFIGURATION -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./ZarplatServer.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ZarplatServer.dll"]
Собираю контейнер
docker build -t zarplatserver:latest .
После этого запускаю
docker run -d -p 5002:80 -p 5003:443 zarplatserver:latest
Выводится следующее в консоль
На скриншоте видно, что он слушает только http порт Если пытаюсь через студию запустить https, то в консоли слушает оба порта и http, и https.
Подскажите где я что-то делаю не так. Цель подключить https с возможностью играться с портами через docker run.
Ответы (1 шт):
Автор решения: Artem Demin
→ Ссылка
ПОБЕДА! Изменил код настройки Kestrel:
builder.WebHost.ConfigureKestrel(options =>
{
var certPath = "/app/steklm2024.pfx";
options.ListenAnyIP(1360, u => u.UseHttps(new X509Certificate2(certPath, "tets")));
options.ListenAnyIP(1361);
});
В докерфайле изменил:
EXPOSE 1360
EXPOSE 1361
Использовал команду для запуска контейнера:
docker run --rm -p 1360:1360 -p 1361:1361 -e ASPNETCORE_HTTPS_PORTS=1360 -e ASPNETCORE_HTTP_PORTS=1361 zarplatserver:latest