Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
ASP.NET Core ve výchozím nastavení používá HTTPS. HTTPS spoléhá na certifikáty pro důvěryhodnost, identitu a šifrování.
Tento dokument vysvětluje, jak spouštět předem připravené image kontejnerů pomocí protokolu HTTPS.
Viz Vývoj aplikací ASP.NET Core pomocí Dockeru přes HTTPS pro vývojové scénáře.
Tato ukázka vyžaduje Docker 17.06 nebo novější klient Dockeru.
Předpoklady
Pro některé pokyny v tomto dokumentu se vyžaduje sada .NET Core 2.2 SDK nebo novější.
Certifikáty
Pro produkční hostování domény se vyžaduje certifikát od certifikační autority. Let's Encrypt je certifikační autorita, která nabízí bezplatné certifikáty.
Tento dokument používá vývojářské certifikáty podepsané sebou samými k hostování předem sestavených imagí přes localhost. Pokyny jsou podobné pokynům pro použití produkčních certifikátů.
Pro produkční certifikáty:
- Nástroj
dotnet dev-certsnení vyžadován. - Certifikáty nemusí být uložené v umístění použitém v pokynech. Uložte certifikáty do libovolného umístění mimo adresář webu.
Pokyny obsažené v následující části popisují, jak připojit certifikáty ke kontejnerům pomocí vlastnosti volumes v souboru docker-compose.yml. Certifikáty můžete přidat do imagí kontejnerů pomocí COPY příkazu v souboru Dockerfile, ale nedoporučuje se. Kopírování certifikátů do image se nedoporučuje z následujících důvodů:
- Kvůli testování pomocí certifikátů vývojářů je obtížné použít stejnou image.
- Kvůli hostování s produkčními certifikáty je obtížné použít stejnou image.
- Existuje značné riziko zveřejnění certifikátu.
Spuštění kontejneru s podporou https pomocí docker compose
Pro konfiguraci operačního systému použijte následující pokyny.
Windows s využitím linuxových kontejnerů
Vygenerujte certifikát a nakonfigurujte místní počítač:
dotnet dev-certs https -ep "$env:USERPROFILE\.aspnet\https\aspnetapp.pfx" -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Předchozí příkaz pomocí rozhraní příkazového řádku .NET:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
V předchozích příkazech nahraďte $CREDENTIAL_PLACEHOLDER$ heslem.
Vytvořte soubor docker-compose.debug.yml s následujícím obsahem:
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
Heslo zadané v souboru docker compose musí odpovídat heslu použitému pro certifikát.
Spusťte kontejner s nakonfigurovaným ASP.NET Core pro HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
macOS nebo Linux
Vygenerujte certifikát a nakonfigurujte místní počítač:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
V Linuxu dotnet dev-certs https --trust vyžaduje .NET 9 nebo novější sadu SDK. Pro informace o důvěryhodnosti certifikátu v Linuxu s .NET 8.0.401 nebo starší verzí SDK si prohlédněte dokumentaci k vaší distribuci Linuxu.
V předchozích příkazech nahraďte $CREDENTIAL_PLACEHOLDER$ heslem.
Vytvořte soubor docker-compose.debug.yml s následujícím obsahem:
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
Heslo zadané v souboru docker compose musí odpovídat heslu použitému pro certifikát.
Spusťte kontejner s nakonfigurovaným ASP.NET Core pro HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Windows využívající kontejnery Windows
Vygenerujte certifikát a nakonfigurujte místní počítač:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
V předchozích příkazech nahraďte $CREDENTIAL_PLACEHOLDER$ heslem.
Vytvořte soubor docker-compose.debug.yml s následujícím obsahem:
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
Heslo zadané v souboru docker compose musí odpovídat heslu použitému pro certifikát.
Spusťte kontejner s nakonfigurovaným ASP.NET Core pro HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Viz také
ASP.NET Core používá ve výchozím nastavení protokol HTTPS. HTTPS spoléhá na certifikáty pro důvěryhodnost, identitu a šifrování.
Tento dokument vysvětluje, jak spouštět předem připravené image kontejnerů pomocí protokolu HTTPS.
Viz Vývoj aplikací ASP.NET Core pomocí Dockeru přes HTTPS pro vývojové scénáře.
Tato ukázka vyžaduje Docker 17.06 nebo novějšího klienta Dockeru.
Předpoklady
Pro některé pokyny v tomto dokumentu se vyžaduje sada .NET Core 2.2 SDK nebo novější.
Certifikáty
Pro produkční hostování domény se vyžaduje certifikát od certifikační autority. Let's Encrypt je certifikační autorita, která nabízí bezplatné certifikáty.
Tento dokument používá vývojové certifikáty podepsané sebou samými k hostování předem sestavených imagí prostřednictvím localhost. Pokyny jsou podobné pokynům pro použití produkčních certifikátů.
Pro produkční certifikáty:
- Nástroj
dotnet dev-certsnení vyžadován. - Certifikáty nemusí být uložené v umístění použitém v pokynech. Uložte certifikáty do libovolného umístění mimo adresář webu.
Pokyny obsažené v následující části popisují připojení certifikátů do kontejnerů pomocí vlastnosti volumes v souboru docker-compose.yml. Certifikáty můžete přidat do imagí kontejnerů pomocí COPY příkazu v souboru Dockerfile, ale nedoporučuje se. Kopírování certifikátů do image se nedoporučuje z následujících důvodů:
- Kvůli testování pomocí certifikátů vývojářů je obtížné použít stejnou image.
- Kvůli hostování s produkčními certifikáty je obtížné použít stejnou image.
- Existuje značné riziko zveřejnění certifikátu.
Spuštění kontejneru s podporou https pomocí docker compose
Pro konfiguraci operačního systému použijte následující pokyny.
Windows používající linuxové kontejnery
Vygenerujte certifikát a nakonfigurujte místní počítač:
dotnet dev-certs https -ep "$env:USERPROFILE\.aspnet\https\aspnetapp.pfx" -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Předchozí příkaz pomocí rozhraní příkazového řádku .NET:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
V předchozích příkazech nahraďte $CREDENTIAL_PLACEHOLDER$ heslem.
Vytvořte soubor docker-compose.debug.yml s následujícím obsahem:
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
Heslo zadané v souboru docker compose musí odpovídat heslu použitému pro certifikát. V předchozích příkazech nahraďte -\0pw- heslem.
Spusťte kontejner s nakonfigurovaným ASP.NET Core pro HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
macOS nebo Linux
Vygenerujte certifikát a nakonfigurujte místní počítač:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
dotnet dev-certs https --trust je podporován pouze v systémech macOS a Windows. Certifikátům v Linuxu musíte důvěřovat způsobem, který vaše distribuce podporuje. Je pravděpodobné, že budete muset důvěřovat certifikátu v prohlížeči.
V předchozích příkazech nahraďte $CREDENTIAL_PLACEHOLDER$ heslem.
Vytvořte soubor docker-compose.debug.yml s následujícím obsahem:
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
Heslo zadané v souboru docker compose musí odpovídat heslu použitému pro certifikát.
Spusťte kontejner s nakonfigurovaným ASP.NET Core pro HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Windows využívající kontejnery Windows
Vygenerujte certifikát a nakonfigurujte místní počítač:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
V předchozích příkazech nahraďte $CREDENTIAL_PLACEHOLDER$ heslem.
Vytvořte soubor docker-compose.debug.yml s následujícím obsahem:
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