Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 pré-criadas com HTTPS.
Consulte Desenvolvimento de Aplicações ASP.NET Core com Docker em HTTPS para cenários de desenvolvimento.
Este exemplo requer Docker 17.06 ou posterior do cliente Docker.
Pré-requisitos
O SDK do .NET Core 2.2 ou posterior é necessário para algumas das instruções neste documento.
Certificados
Um certificado de uma autoridade de certificação é necessário para hospedagem em 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é-construídas em localhost. As instruções são semelhantes à utilização de certificados de produção.
Para os 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 volumes de certificados em contêineres usando a propriedade
- Isso dificulta o uso da mesma imagem para testes com certificados de desenvolvedor.
- Isso dificulta o uso da mesma imagem para hospedagem com certificados de produção.
- Existe um risco significativo de divulgação de certificados.
Iniciando um contêiner com suporte a https usando docker compose
Use as instruções a seguir para a configuração do sistema operacional.
Windows usando contêineres Linux
Gere certificado e configure a máquina 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 de composição do docker deve corresponder à senha usada para o certificado.
Inicie o contêiner com ASP.NET Core configurado para HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
macOS ou Linux
Gere certificado e configure a máquina 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 SDK anterior, consulte a documentação da sua distribuição 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 de composição do docker deve corresponder à senha usada para o certificado.
Inicie o contêiner com ASP.NET Core configurado para HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Windows usando contêineres do Windows
Gere certificado e configure a máquina 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 de composição do docker deve corresponder à senha usada para o certificado.
Inicie o contêiner com ASP.NET Core configurado para HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Ver também
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 pré-criadas com HTTPS.
Consulte Desenvolvimento de Aplicações ASP.NET Core com Docker em HTTPS para cenários de desenvolvimento.
Este exemplo requer Docker 17.06 ou posterior do cliente Docker.
Pré-requisitos
O SDK do .NET Core 2.2 ou posterior é necessário para algumas das instruções neste documento.
Certificados
Um certificado de uma autoridade de certificação é necessário para hospedagem em 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é-construídas em localhost. As instruções são semelhantes à utilização de certificados de produção.
Para os 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 volumes de certificados em contêineres usando a propriedade
- Isso dificulta o uso da mesma imagem para testes com certificados de desenvolvedor.
- Isso dificulta o uso da mesma imagem para hospedagem com certificados de produção.
- Existe um risco significativo de divulgação de certificados.
Iniciando um contêiner com suporte a https usando docker compose
Use as instruções a seguir para a configuração do sistema operacional.
Windows usando contêineres Linux
Gere certificado e configure a máquina 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 de composição do docker deve corresponder à senha usada para o certificado. Nos comandos anteriores, substitua -\0pw- por uma senha.
Inicie o contêiner com ASP.NET Core configurado para HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
macOS ou Linux
Gere certificado e configure a máquina local:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
dotnet dev-certs https --trust só é suportado no macOS e no Windows. Você precisa confiar em certificados no Linux da maneira que é suportada pela sua distribuição. É provável que você precise confiar no certificado em 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 de composição do docker deve corresponder à senha usada para o certificado.
Inicie o contêiner com ASP.NET Core configurado para HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Windows usando contêineres do Windows
Gere certificado e configure a máquina 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