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.
SSL (Secure Sockets Layer) fornece conexões seguras sobre HTTP (HTTPS). Esse método de proteger conexões usa um certificado e, em um aplicativo conteinerizado, os mapeamentos de porta são diferentes para pontos de entrada seguros e não seguros.
Pré-requisitos
- Docker Desktop ou Podman Desktop.
- Visual Studio ou, para suporte ao Podman, Visual Studio 2026, com a carga de trabalho de desenvolvimento ASP.NET e web, carga de trabalho de desenvolvimento do Azure e/ou carga de trabalho de desenvolvimento de desktop .NET instalada.
Pré-requisitos
- Área de trabalho do Docker.
- Visual Studio com a carga de trabalho de desenvolvimento ASP.NET e Web, carga de trabalho de desenvolvimento do Azure e/ou carga de trabalho de desenvolvimento de área de trabalho .NET instalada.
Segurança para aplicativos de vários contêineres
As arquiteturas de aplicativos de vários contêineres variam dependendo dos requisitos de segurança. Alguns designs de aplicativos usam HTTPS para pontos de extremidade externos, mas HTTP para comunicação interna de um contêiner para outro. Ambientes de alta segurança podem usar HTTPS para todas as comunicações, mesmo entre contêineres que só são acessíveis dentro de um perímetro externo seguro.
Portas e mapeamentos de portas
O Dockerfile contém diretivas para expor portas ao tráfego externo por HTTP não seguro ou HTTPS seguro. Além disso, o .NET 8 e posteriores executam o aplicativo em contêiner como um usuário típico, mas em versões anteriores do .NET, os aplicativos em contêineres são executados como administrador. Quando executados como administradores, os aplicativos têm acesso às portas privilegiadas 80 para tráfego HTTP e 443 tráfego HTTPS. Quando os aplicativos são executados como usuários sem privilégios elevados, eles usam as portas 8080 para HTTP e 8081 para HTTPS. As portas aparecem nos comandos EXPOSE no Dockerfile que o Visual Studio gera. As portas no contêiner especificado no Dockerfile são mapeadas para portas de host usando os mapeamentos especificados no arquivo de configurações de inicialização. Consulte Configurações de inicialização das ferramentas de contêiner. Quando o container estiver em execução, você poderá exibir os mapeamentos de porta na janela Containers. Consulte Exibir e diagnosticar contêineres.
Certificados
As ferramentas de contentor no Visual Studio oferecem suporte à depuração de uma aplicação ASP.NET Core habilitada para SSL com um certificado de desenvolvimento, da mesma forma que se esperaria que funcionasse sem contentores. Para fazer isso acontecer, o Visual Studio adiciona mais algumas etapas para exportar o certificado e disponibilizá-lo para o contêiner. Aqui está o fluxo que o Visual Studio manipula para você ao depurar no contêiner:
Garante que o certificado de desenvolvimento local esteja presente e seja confiável na máquina host por meio da ferramenta
dev-certs.Exporta o certificado para
%APPDATA%\ASP.NET\Httpscom uma senha segura armazenada no repositório de segredos do usuário para este aplicativo específico.O volume monta os seguintes diretórios:
*%APPDATA%\Microsoft\UserSecrets*%APPDATA%\ASP.NET\Https
ASP.NET Core procura um certificado que corresponda ao nome do assembly na pasta Https, e é por isso que ele é mapeado para o contêiner nesse caminho. O caminho do certificado e a senha podem ser definidos alternativamente usando variáveis de ambiente (ou seja, ASPNETCORE_Kestrel__Certificates__Default__Path e ASPNETCORE_Kestrel__Certificates__Default__Password) ou no arquivo json de segredos de usuário, por exemplo:
{
"Kestrel": {
"Certificates": {
"Default": {
"Path": "c:\\app\\mycert.pfx",
"Password": "strongpassword"
}
}
}
}
Se sua configuração oferecer suporte a compilações conteinerizadas e não conteinerizadas, você deverá usar as variáveis de ambiente, pois os caminhos são específicos para o ambiente de contêiner.
Para obter mais informações sobre como usar SSL com aplicativos ASP.NET Core em contêineres, consulte Hosting ASP.NET Core images with Docker over HTTPS.
Para obter um exemplo de código que demonstra a criação de certificados personalizados para um aplicativo multisserviço que são confiáveis no host e nos contêineres para comunicação de serviço a serviço HTTPS, consulte CertExample.
Se você planeja implantar seu aplicativo em contêineres no Azure, consulte Configurar HTTPS ao implantar aplicativos em contêineres no Azure.