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


ASP.NET Core-rendszerképek üzemeltetése a Dockerrel HTTPS-en keresztül

Készítette: Rick Anderson

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 .NET parancssori felületének (CLI)használatával. A Docker a Visual Studióval való fejlesztés során történő futtatásával kapcsolatos útmutatásért lásd: ASP.NET Core-alkalmazások fejlesztése a Dockerrel HTTPS-.

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

Előfeltételek

Az aktuális .NET SDK.

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. A dotnet dev-certs által létrehozott tanúsítvány csak localhost használható, és nem olyan környezetben, mint a Kubernetes. A HTTPS Kubernetes-fürtön belüli támogatásához használja a TLS-tanúsítványok kezelése fürtben által biztosított eszközöket a TLS podokon belüli beállításához.

A dotnet dev-certs használatával önaláírt tanúsítványokat hozhat létre a fejlesztéshez és teszteléshez.

Éles tanúsítvány 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. Minden helynek működnie kell, bár a tanúsítványokat nem ajánlott a helykönyvtárban tárolni.

Az alábbi szakaszban található utasítások a tanúsítványokat kötegekbe csatolják a konténerekbe a Docker -v parancssori opciójával. A DockerfileCOPY 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:

  • A fejlesztői tanúsítványokkal való teszteléshez nehéz ugyanazt a rendszerképet használni.
  • Nehéz ugyanazt a képet használni az éles hitelesítési tanúsítványokkal történő üzemeltetéshez.
  • A tanúsítvány nyilvánosságra hozatalának jelentős kockázata van.

Előre elkészített tárolórendszerképek futtatása HTTPS 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

Hozzon létre egy tanúsítványt, és konfigurálja a helyi gépet:

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.

Futtassa a HTTPS-re konfigurált ASP.NET Core-ral a konténerképet egy parancshéjban:

docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp

Az előző kódban cserélje le a <CREDENTIAL_PLACEHOLDER> a jelszóra. A jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval.

Ha PowerShell-használ, cserélje le a %USERPROFILE%$env:USERPROFILE.

Megjegyzés: Ebben az esetben a tanúsítványnak .pfx fájlnak kell lennie. A mintatároló nem támogatja az .crt vagy .key fájl jelszóval vagy anélkül történő használatával. Ha például egy .crt fájlt ad meg, a tároló olyan hibaüzeneteket adhat vissza, mint a "A kiszolgáló módú SSL-nek tanúsítványt kell használnia a társított titkos kulccsal". WSL-használatakor ellenőrizze a csatlakoztatási útvonalat, hogy a tanúsítvány megfelelően legyen betöltve.

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 a dotnet dev-certs https --trust .NET 9 SDK-t vagy újabb verziót igényel. A .NET 8.0.401 SDK-n és korábbi verziókon 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.

Futtassa a konténerképet a HTTPS-hez konfigurált ASP.NET Core-ral.

docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v ${HOME}/.aspnet/https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp

Az előző kódban cserélje le a <CREDENTIAL_PLACEHOLDER> a jelszóra. A jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval.

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. Ha ön a PowerShell-t használja, cserélje le a %USERPROFILE%-t $env:USERPROFILE-ra.

Futtassa a tárolórendszerképet a HTTPS-hez konfigurált ASP.NET Core használatával:

docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=c:\https\aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:C:\https\ --user ContainerAdministrator mcr.microsoft.com/dotnet/samples:aspnetapp

MEGJEGYZÉS:<CREDENTIAL_PLACEHOLDER> a Kestrel tanúsítványok alapértelmezett jelszavának helyőrzője.

A jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval. Ha PowerShell-használ, cserélje le a %USERPROFILE%$env:USERPROFILE.

ASP.NET Core-alkalmazások fejlesztése a Dockerrel HTTPS-en keresztül

ASP.NET Core-alkalmazások fejlesztése a Dockerrel HTTPS- keresztül című témakörben talál információkat és példákat arról, hogyan fejleszthet ASP.NET Core-alkalmazásokat HTTPS-lel a Docker-tárolókban.

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 azonosítás és a titkosítás érdekében.

Ez a dokumentum bemutatja, hogyan futtathat előre elkészített tárolórendszerképeket HTTPS-lel a .NET parancssori felületének (CLI)használatával. A Docker a Visual Studióval való fejlesztés során történő futtatásával kapcsolatos útmutatásért lásd: ASP.NET Core-alkalmazások fejlesztése a Dockerrel HTTPS-.

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

Előfeltételek

Az aktuális .NET SDK.

Tanúsítványok

Egy hitelesítésszolgáltatótól származó tanúsítványra van szükség éles üzemeltetésű tartományhoz. 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. A dotnet dev-certs által létrehozott tanúsítvány csak localhost használható, és nem olyan környezetben, mint a Kubernetes. A HTTPS Kubernetes-fürtön belüli támogatásához használja a TLS-tanúsítványok kezelése fürtben által biztosított eszközöket a TLS podokon belüli beállításához.

A dotnet dev-certs használatával önaláírt tanúsítványokat hozhat létre a fejlesztéshez és teszteléshez.

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. Minden helynek működnie kell, bár a tanúsítványokat nem ajánlott a helykönyvtárban tárolni.

Az alábbi szakaszban található utasítások a Docker -v parancssori opciójának használatával csatlakoztatják a tanúsítványokat a konténerekhez. A DockerfileCOPY 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:

  • A fejlesztői tanúsítványokkal való teszteléshez nehéz ugyanazt a rendszerképet használni.
  • Nehéz ugyanazt a képfájlt használni az éles tanúsítványokkal való hosztoláshoz.
  • A tanúsítvány nyilvánosságra hozatalának jelentős kockázata van.

Előre elkészített tárolórendszerképek futtatása HTTPS 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

Hozzon létre egy tanúsítványt, és konfigurálja a helyi gépet:

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.

Futtassa a konténerképet, amely az ASP.NET Core-ra van konfigurálva HTTPS használatával, egy parancssorban.

docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp

Az előző kódban cserélje le a <CREDENTIAL_PLACEHOLDER> a jelszóra. A jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval.

Amikor a PowerShell-t használja, cserélje le a %USERPROFILE%-t $env:USERPROFILE-ra.

Megjegyzés: Ebben az esetben a tanúsítványnak .pfx fájlnak kell lennie. A mintatároló nem támogatja az .crt vagy .key fájl jelszóval vagy anélkül történő használatával. Ha például egy .crt fájlt ad meg, a tároló olyan hibaüzeneteket adhat vissza, mint a "A kiszolgáló módú SSL-nek tanúsítványt kell használnia a társított titkos kulccsal". WSL-használatakor ellenőrizze a csatlakoztatási útvonalat, hogy a tanúsítvány megfelelően legyen betöltve.

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ányokat a disztribúció által támogatott módon kell megbízhatónak minősítenie. 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.

Futtassa a konténerképet HTTPS-re konfigurált ASP.NET Core alkalmazással:

docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v ${HOME}/.aspnet/https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp

Az előző kódban cserélje le a <CREDENTIAL_PLACEHOLDER> a jelszóra. A jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval.

Windows-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 %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. Amikor a PowerShell-t használja, cserélje le a %USERPROFILE%-t $env:USERPROFILE-ra.

Futtassa a konténerképet HTTPS-re konfigurált ASP.NET Core használatával:

docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=c:\https\aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:C:\https\ --user ContainerAdministrator mcr.microsoft.com/dotnet/samples:aspnetapp

MEGJEGYZÉS:<CREDENTIAL_PLACEHOLDER> a Kestrel tanúsítványok alapértelmezett jelszavának helyőrzője.

A jelszónak meg kell egyeznie a tanúsítványhoz használt jelszóval. Ha a PowerShell--t használja, cserélje le a %USERPROFILE%-t $env:USERPROFILE-ra.

ASP.NET Core-alkalmazások fejlesztése a Dockerrel HTTPS-en keresztül

ASP.NET Core-alkalmazások fejlesztése a Dockerrel HTTPS- keresztül című témakörben talál információkat és példákat arról, hogyan fejleszthet ASP.NET Core-alkalmazásokat HTTPS-lel a Docker-tárolókban.

Lásd még: