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 SSL (Secure Sockets Layer) fornece conexões seguras por HTTPS (HTTPS). Esse método de proteção de conexões usa um certificado e, em um aplicativo em contêineres, os mapeamentos de porta são diferentes para pontos de entrada protegidos e não seguros.
Pré-requisitos
- Área de Trabalho do Docker ou Podman Desktop.
- Visual Studio ou para suporte ao Podman, Visual Studio 2026, com a carga de trabalho ASP.NET e desenvolvimento web, desenvolvimento do Azure e/ou desenvolvimento de desktop do .NET instalada.
Pré-requisitos
- Área de Trabalho do Docker.
- Visual Studio com o ASP.NET e desenvolvimento na Web, carga de trabalho de desenvolvimento do Azure e/ou carga de trabalho de desenvolvimento da área de trabalho do .NET instalada.
Segurança para aplicativos multicontener
As arquiteturas de aplicativo multicontainer variam dependendo dos requisitos de segurança. Alguns designs de aplicativo 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êineres como um usuário típico, mas em versões anteriores do .NET, aplicativos em contêineres são executados como administrador. Ao executar como administrador, os aplicativos têm acesso às portas com privilégios 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 gerado pelo Visual Studio. 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. Confira as Configurações de inicialização das ferramentas de contêiner. Quando o contêiner está em execução, você pode visualizar os mapeamentos de porta na janela Contêineres. Consulte Exibir e diagnosticar contêineres.
Certificados
As ferramentas de contêiner no Visual Studio permitem depurar um aplicativo ASP.NET Core compatível com SSL usando um certificado de desenvolvimento, da mesma forma que você esperaria que funcionasse sem contêineres. Para fazer isso acontecer, o Visual Studio adiciona mais algumas etapas para exportar o certificado e disponibilizá-lo para o contêiner. Este é o fluxo que o Visual Studio manuseia para você ao debugar no contêiner.
Garante que o certificado de desenvolvimento local esteja presente e confiável no computador host por meio da ferramenta
dev-certs.Exporta o certificado para
%APPDATA%\ASP.NET\Httpscom uma senha segura que é armazenada no repositório de segredos do usuário para este aplicativo específico.Montagens de volume nos 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, razão pela qual ele é mapeado no contêiner nesse caminho. O caminho do certificado e a senha podem ser definidos como alternativa usando variáveis de ambiente (ou seja, ASPNETCORE_Kestrel__Certificates__Default__Path e ASPNETCORE_Kestrel__Certificates__Default__Password) ou no arquivo json de segredos do usuário, por exemplo:
{
"Kestrel": {
"Certificates": {
"Default": {
"Path": "c:\\app\\mycert.pfx",
"Password": "strongpassword"
}
}
}
}
Se sua configuração der suporte a builds containerizados e não containerizados, você deve utilizar 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 o SSL com aplicativos ASP.NET Core em contêineres, consulte Hospedagem de imagens do ASP.NET Core com o Docker por https.
Para obter um exemplo de código que demonstra a criação de certificados personalizados para um aplicativo de vários serviços confiável no host e nos contêineres para comunicação 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.