Как мне сделать так, чтобы мой сервис используя эти файлы запускался на https в контейнере
Пример Dockerfile конфига (при необходимости, поправить пути и наименования):
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["project.csproj", "."]
RUN dotnet restore "project.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "project.csproj" -c Release -o /app/publish
FROM build AS publish
RUN dotnet publish "project.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
COPY ["cert.pem", "key.pem", "/https/"]
ENTRYPOINT ["dotnet", "project.dll"]
https://learn.microsoft.com/en-us/aspnet/core/fund...
Пример Program.cs:
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel(options =>
{
options.ListenAnyIP(443, listenOptions =>
{
listenOptions.UseHttps("/https/cert.pem", "/https/key.pem");
});
});
Ну и при использование Nginx (например) в качестве обратного прокси, то придется настроить и его. С другой стороны, если у Вас будет стоять Nginx, то не совсем понятно, для чего гонять защищенный трафик между Nginx и ASPNET, т.к:
1. Nginx универсальнее и производительнее ASPNET в данном контексте.
2. Если подлинность трафика уже подтверждена на уровне Nginx, то зачем все тоже самое повторять дальше по цепочке, в ASPNET.