Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O ASP.NET Core usa HTTPS por padrão. HTTPS depende de certificados para confiança, identidade e criptografia.
Este documento explica como executar imagens de contêiner predefinidas com HTTPS.
Confira Como desenvolver aplicativos do ASP.NET Core com Docker por meio de HTTPS para cenários de desenvolvimento.
Esse exemplo instala o Docker 17.06 ou posterior do cliente do Docker.
Pré-requisitos
O SDK do .NET Core 2.2 ou posterior é necessário para algumas instruções incluídas neste documento.
Certificados
Um certificado de uma autoridade de certificação é necessário para uma hospedagem de produção para um domínio. Let's Encrypt é uma autoridade de certificação que oferece certificados gratuitos.
Este documento usa certificados de desenvolvimento autoassinados para hospedar imagens pré-criadas por meio de localhost. As instruções são semelhantes às do uso de certificados de produção.
Para certificados de produção:
- A ferramenta
dotnet dev-certsnão é necessária. - Os certificados não precisam ser armazenados no local usado nas instruções. Armazene os certificados em qualquer local fora do diretório do site.
As instruções contidas na seção a seguir montam um volume de certificados em contêineres usando a propriedade volumes no docker-compose.yml. Você pode adicionar certificados em imagens de contêiner com um comando COPY em um Dockerfile, mas isso não é recomendado. A cópia de certificados em uma imagem não é recomendada pelos seguintes motivos:
- Dificulta o uso da mesma imagem para testes com certificados de desenvolvedor.
- Dificulta o uso da mesma imagem para Hospedagem com certificados de produção.
- Existe um risco significativo de divulgação do certificado.
Como iniciar um contêiner com suporte a https usando o Docker Compose
Use as instruções a seguir para a configuração do seu sistema operacional.
Windows usando contêineres do Linux
Para gerar um certificado e configurar um computador local:
dotnet dev-certs https -ep "$env:USERPROFILE\.aspnet\https\aspnetapp.pfx" -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
O comando anterior usando a CLI do .NET:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Nos comandos anteriores, substitua $CREDENTIAL_PLACEHOLDER$ por uma senha.
Crie um arquivo docker-compose.debug.yml com o seguinte conteúdo:
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 senha especificada no arquivo do Docker Compose precisa corresponder à senha usada para o certificado.
Inicie o contêiner com o ASP.NET Core configurado para HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
macOS ou Linux
Para gerar um certificado e configurar um computador local:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
No Linux, dotnet dev-certs https --trust requer o SDK do .NET 9 ou posterior. Para Linux no .NET 8.0.401 ou no SDK anterior, consulte a documentação da distribuição do Linux para confiar em um certificado.
Nos comandos anteriores, substitua $CREDENTIAL_PLACEHOLDER$ por uma senha.
Crie um arquivo docker-compose.debug.yml com o seguinte conteúdo:
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 senha especificada no arquivo do Docker Compose precisa corresponder à senha usada para o certificado.
Inicie o contêiner com o ASP.NET Core configurado para HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Windows que usa contêineres do Windows
Para gerar um certificado e configurar um computador local:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Nos comandos anteriores, substitua $CREDENTIAL_PLACEHOLDER$ por uma senha.
Crie um arquivo docker-compose.debug.yml com o seguinte conteúdo:
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 senha especificada no arquivo do Docker Compose precisa corresponder à senha usada para o certificado.
Inicie o contêiner com o ASP.NET Core configurado para HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Confira também
O ASP.NET Core usa HTTPS por padrão. HTTPS depende de certificados para confiança, identidade e criptografia.
Este documento explica como executar imagens de contêiner predefinidas com HTTPS.
Confira Como desenvolver aplicativos do ASP.NET Core com Docker por meio de HTTPS para cenários de desenvolvimento.
Esse exemplo instala o Docker 17.06 ou posterior do cliente do Docker.
Pré-requisitos
O SDK do .NET Core 2.2 ou posterior é necessário para algumas instruções incluídas neste documento.
Certificados
Um certificado de uma autoridade de certificação é necessário para uma hospedagem de produção para um domínio. Let's Encrypt é uma autoridade de certificação que oferece certificados gratuitos.
Este documento usa certificados de desenvolvimento autoassinados para hospedar imagens pré-criadas por meio de localhost. As instruções são semelhantes às do uso de certificados de produção.
Para certificados de produção:
- A ferramenta
dotnet dev-certsnão é necessária. - Os certificados não precisam ser armazenados no local usado nas instruções. Armazene os certificados em qualquer local fora do diretório do site.
As instruções contidas na seção a seguir montam um volume de certificados em contêineres usando a propriedade volumes no docker-compose.yml. Você pode adicionar certificados em imagens de contêiner com um comando COPY em um Dockerfile, mas isso não é recomendado. A cópia de certificados em uma imagem não é recomendada pelos seguintes motivos:
- Dificulta o uso da mesma imagem para testes com certificados de desenvolvedor.
- Dificulta o uso da mesma imagem para Hospedagem com certificados de produção.
- Existe um risco significativo de divulgação do certificado.
Como iniciar um contêiner com suporte a https usando o Docker Compose
Use as instruções a seguir para a configuração do seu sistema operacional.
Windows usando contêineres do Linux
Para gerar um certificado e configurar um computador local:
dotnet dev-certs https -ep "$env:USERPROFILE\.aspnet\https\aspnetapp.pfx" -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
O comando anterior usando a CLI do .NET:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Nos comandos anteriores, substitua $CREDENTIAL_PLACEHOLDER$ por uma senha.
Crie um arquivo docker-compose.debug.yml com o seguinte conteúdo:
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 senha especificada no arquivo do Docker Compose precisa corresponder à senha usada para o certificado. Nos comandos anteriores, substitua -\0pw- por uma senha.
Inicie o contêiner com o ASP.NET Core configurado para HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
macOS ou Linux
Para gerar um certificado e configurar um computador local:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
O dotnet dev-certs https --trust só tem suporte no macOS e no Windows. No Linux você precisa confiar em certificados de uma maneira que seja compatível com a sua distribuição. É provável que você precise confiar no certificado do seu navegador.
Nos comandos anteriores, substitua $CREDENTIAL_PLACEHOLDER$ por uma senha.
Crie um arquivo docker-compose.debug.yml com o seguinte conteúdo:
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 senha especificada no arquivo do Docker Compose precisa corresponder à senha usada para o certificado.
Inicie o contêiner com o ASP.NET Core configurado para HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Windows que usa contêineres do Windows
Para gerar um certificado e configurar um computador local:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Nos comandos anteriores, substitua $CREDENTIAL_PLACEHOLDER$ por uma senha.
Crie um arquivo docker-compose.debug.yml com o seguinte conteúdo:
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