Megosztás a következőn keresztül:


ASP.NET Core-lemezképek üzemeltetése a Docker Compose használatával HTTPS-en keresztül

ASP.NET Core alapértelmezés szerint HTTPS-t használ. A HTTPStanúsítványokra támaszkodik a megbízhatóság, az azonosság és a titkosítás biztosítása érdekében.

Ez a dokumentum bemutatja, hogyan futtathat előre elkészített tárolórendszerképeket HTTPS-lel.

A fejlesztési forgatókönyvekért lásd: ASP.NET Core-alkalmazások fejlesztése a Dockerrel HTTPS-en keresztül .

Ehhez a mintához a Docker 17.06 verzió vagy újabb, valamint a Docker-ügyfélszükséges.

Előfeltételek

A dokumentumban szereplő utasítások némelyikéhez a .NET Core 2.2 SDK-ra vagy újabbra van szükség.

Tanúsítványok

Egy hitelesítésszolgáltatótól származó tanúsítványra van szükség a termelési környezetben történő hosztinghoz egy tartomány esetén. Let's Encrypt ingyenes tanúsítványokat kínáló hitelesítésszolgáltató.

Ez a dokumentum önaláírt fejlesztési tanúsítványokat használ az előre elkészített rendszerképek localhostkeresztüli üzemeltetéséhez. Az utasítások hasonlóak a gyártási tanúsítványok használatához.

Gyártási tanúsítványok esetén:

  • Nincs szükség a dotnet dev-certs eszközre.
  • A tanúsítványokat nem kell az utasításokban használt helyen tárolni. A tanúsítványokat a helykönyvtáron kívüli bármely helyen tárolhatja.

A következő szakaszban található utasítások kötetbe csatlakoztatják a tanúsítványokat a tárolókba a volumes docker-compose.yml tulajdonság használatával. Egy COPY parancsával tanúsítványokat vehet fel a tárolólemezképekbe, de ez nem ajánlott. A tanúsítványok képre másolása a következő okok miatt nem ajánlott:

  • Ez megnehezíti, hogy ugyanazt a képet használják a teszteléshez a fejlesztői tanúsítványokkal.
  • Nehezíti ugyanannak a képfájlnak a használatát éles tanúsítványokkal történő üzemeltetéshez.
  • A tanúsítvány nyilvánosságra hozatalának jelentős kockázata van.

Tároló indítása https-támogatással a Docker Compose használatával

Az operációs rendszer konfigurációjához kövesse az alábbi utasításokat.

Linux-tárolókat használó Windows

Tanúsítvány létrehozása és helyi gép konfigurálása:

dotnet dev-certs https -ep "$env:USERPROFILE\.aspnet\https\aspnetapp.pfx"  -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust

Az előző parancs a .NET PARANCSSOR HASZNÁLATÁVAL:

dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust

Az előző parancsokban cserélje le a $CREDENTIAL_PLACEHOLDER$ egy jelszóra.

Hozzon létre egy docker-compose.debug.yml fájlt a következő tartalommal:

version: '3.4'

services:
  webapp:
    image: mcr.microsoft.com/dotnet/samples:aspnetapp
    ports:
      - 80
      - 443
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=-\0pw-
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
    volumes:
      - ~/.aspnet/https:/https:ro

A docker compose fájlban megadott jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval.

Indítsa el a tárolót a HTTPS-hez konfigurált ASP.NET Core-val:

docker-compose -f "docker-compose.debug.yml" up -d

macOS vagy Linux

Tanúsítvány létrehozása és helyi gép konfigurálása:

dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust

Linuxon dotnet dev-certs https --trust a .NET 9 vagy újabb SDK szükséges. A .NET 8.0.401-en vagy korábbi SDK-n futó Linux esetén tekintse meg a Linux-disztribúció tanúsítványmegbízhatósági dokumentációját.

Az előző parancsokban cserélje le a $CREDENTIAL_PLACEHOLDER$ egy jelszóra.

Hozzon létre egy docker-compose.debug.yml fájlt a következő tartalommal:

version: '3.4'

services:
  webapp:
    image: mcr.microsoft.com/dotnet/samples:aspnetapp
    ports:
      - 80
      - 443
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=-\0pw-
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
    volumes:
      - ~/.aspnet/https:/https:ro

A docker compose fájlban megadott jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval.

Indítsa el a tárolót a HTTPS-hez konfigurált ASP.NET Core-val:

docker-compose -f "docker-compose.debug.yml" up -d

Windows, amely Windows-tárolókat használ

Tanúsítvány létrehozása és helyi gép konfigurálása:

dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust

Az előző parancsokban cserélje le a $CREDENTIAL_PLACEHOLDER$ egy jelszóra.

Hozzon létre egy docker-compose.debug.yml fájlt a következő tartalommal:

version: '3.4'

services:
  webapp:
    image: mcr.microsoft.com/dotnet/samples:aspnetapp
    ports:
      - 80
      - 443
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=-\0pw-
      - ASPNETCORE_Kestrel__Certificates__Default__Path=C:\https\aspnetapp.pfx
    volumes:
      - ${USERPROFILE}\.aspnet\https:C:\https:ro

A docker compose fájlban megadott jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval.

Indítsa el a tárolót a HTTPS-hez konfigurált ASP.NET Core-val:

docker-compose -f "docker-compose.debug.yml" up -d

Lásd még

ASP.NET Core alapértelmezés szerint HTTPS-t használ. A HTTPStanúsítványokra támaszkodik a megbízhatóság, az azonosság és a titkosítás biztosítása érdekében.

Ez a dokumentum bemutatja, hogyan futtathat előre elkészített tárolórendszerképeket HTTPS-lel.

A fejlesztési forgatókönyvekért lásd: ASP.NET Core-alkalmazások fejlesztése a Dockerrel HTTPS-en keresztül .

Ehhez a mintához a Docker 17.06 verzió vagy újabb, valamint a Docker-ügyfélszükséges.

Előfeltételek

A dokumentumban szereplő utasítások némelyikéhez a .NET Core 2.2 SDK-ra vagy újabbra van szükség.

Tanúsítványok

Egy hitelesítésszolgáltatótól származó tanúsítványra van szükség a termelési környezetben történő hosztinghoz egy tartomány esetén. Let's Encrypt ingyenes tanúsítványokat kínáló hitelesítésszolgáltató.

Ez a dokumentum önaláírt fejlesztési tanúsítványokat használ az előre elkészített rendszerképek localhostkeresztüli üzemeltetéséhez. Az utasítások hasonlóak a gyártási tanúsítványok használatához.

Gyártási tanúsítványok esetén:

  • Nincs szükség a dotnet dev-certs eszközre.
  • A tanúsítványokat nem kell az utasításokban használt helyen tárolni. A tanúsítványokat a helykönyvtáron kívüli bármely helyen tárolhatja.

A következő szakaszban található utasítások kötetbe csatlakoztatják a tanúsítványokat a tárolókba a volumes docker-compose.yml tulajdonság használatával. Egy COPY parancsával tanúsítványokat vehet fel a tárolólemezképekbe, de ez nem ajánlott. A tanúsítványok képre másolása a következő okok miatt nem ajánlott:

  • Ez megnehezíti, hogy ugyanazt a képet használják a teszteléshez a fejlesztői tanúsítványokkal.
  • Nehezíti ugyanannak a képfájlnak a használatát éles tanúsítványokkal történő üzemeltetéshez.
  • A tanúsítvány nyilvánosságra hozatalának jelentős kockázata van.

Tároló indítása https-támogatással a Docker Compose használatával

Az operációs rendszer konfigurációjához kövesse az alábbi utasításokat.

Linux-tárolókat használó Windows

Tanúsítvány létrehozása és helyi gép konfigurálása:

dotnet dev-certs https -ep "$env:USERPROFILE\.aspnet\https\aspnetapp.pfx"  -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust

Az előző parancs a .NET PARANCSSOR HASZNÁLATÁVAL:

dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust

Az előző parancsokban cserélje le a $CREDENTIAL_PLACEHOLDER$ egy jelszóra.

Hozzon létre egy docker-compose.debug.yml fájlt a következő tartalommal:

version: '3.4'

services:
  webapp:
    image: mcr.microsoft.com/dotnet/samples:aspnetapp
    ports:
      - 80
      - 443
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=-\0pw-
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
    volumes:
      - ~/.aspnet/https:/https:ro

A docker compose fájlban megadott jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval. Az előző parancsokban cserélje le a -\0pw- egy jelszóra.

Indítsa el a tárolót a HTTPS-hez konfigurált ASP.NET Core-val:

docker-compose -f "docker-compose.debug.yml" up -d

macOS vagy Linux

Tanúsítvány létrehozása és helyi gép konfigurálása:

dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust

dotnet dev-certs https --trust csak macOS és Windows rendszeren támogatott. A linuxos tanúsítványokban a disztribúció által támogatott módon kell megbíznia. Valószínűleg megbízhatónak kell jelölnie a tanúsítványt a böngészőben.

Az előző parancsokban cserélje le a $CREDENTIAL_PLACEHOLDER$ egy jelszóra.

Hozzon létre egy docker-compose.debug.yml fájlt a következő tartalommal:

version: '3.4'

services:
  webapp:
    image: mcr.microsoft.com/dotnet/samples:aspnetapp
    ports:
      - 80
      - 443
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=password
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
    volumes:
      - ~/.aspnet/https:/https:ro

A docker compose fájlban megadott jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval.

Indítsa el a tárolót a HTTPS-hez konfigurált ASP.NET Core-val:

docker-compose -f "docker-compose.debug.yml" up -d

Windows, amely Windows-tárolókat használ

Tanúsítvány létrehozása és helyi gép konfigurálása:

dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust

Az előző parancsokban cserélje le a $CREDENTIAL_PLACEHOLDER$ egy jelszóra.

Hozzon létre egy docker-compose.debug.yml fájlt a következő tartalommal:

version: '3.4'

services:
  webapp:
    image: mcr.microsoft.com/dotnet/samples:aspnetapp
    ports:
      - 80
      - 443
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=-\0pw-
      - ASPNETCORE_Kestrel__Certificates__Default__Path=C:\https\aspnetapp.pfx
    volumes:
      - ${USERPROFILE}\.aspnet\https:C:\https:ro
The password specified in the docker compose file must match the password used for the certificate. In the preceding commands, replace `-\0pw-` with a password.


Start the container with ASP.NET Core configured for HTTPS:

```console
docker-compose -f "docker-compose.debug.yml" up -d

Lásd még