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 localhost
keresztü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 localhost
keresztü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.