Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Protokół SSL (Secure Sockets Layer) zapewnia bezpieczne połączenia za pośrednictwem protokołu HTTP (HTTPS). Ta metoda zabezpieczania połączeń używa certyfikatu, a w aplikacji konteneryzowanej mapowania portów różnią się w przypadku zabezpieczonych i niezabezpieczonych punktów wejścia.
Wymagania wstępne
- Docker Desktop lub Podman Desktop.
- Visual Studio, lub dla obsługi Podman, Visual Studio 2026 z zainstalowanym pakietem ASP.NET i rozwoju aplikacji sieci Web, pakietem rozwoju na platformie Azure i/lub pakietem tworzenia aplikacji desktopowych platformy .NET.
Wymagania wstępne
- Docker Desktop.
- Program Visual Studio, który ma zainstalowane pakiety do tworzenia ASP.NET i aplikacji internetowych, rozwoju aplikacji na platformie Azure, i/lub rozwoju aplikacji desktopowych .NET.
Zabezpieczenia aplikacji wielokontenerowych
Architektury aplikacji wielokontenerowych różnią się w zależności od wymagań dotyczących zabezpieczeń. Niektóre projekty aplikacji używają protokołu HTTPS dla zewnętrznych punktów końcowych, ale protokół HTTP do komunikacji wewnętrznej z jednego kontenera do innego. Środowiska o wysokim poziomie zabezpieczeń mogą używać protokołu HTTPS dla całej komunikacji, nawet między kontenerami dostępnymi tylko w bezpiecznym obwodzie zewnętrznym.
Porty i mapowania portów
Plik Dockerfile zawiera dyrektywy dotyczące uwidaczniania portów do ruchu zewnętrznego za pośrednictwem niezabezpieczonego protokołu HTTP lub bezpiecznego protokołu HTTPS. Ponadto platforma .NET 8 lub nowsza uruchamia konteneryzowaną aplikację jako typowy użytkownik, ale we wcześniejszych wersjach platformy .NET aplikacje konteneryzowane działają jako administrator. W przypadku uruchamiania jako administrator aplikacje mają dostęp do uprzywilejowanych portów 80 dla ruchu HTTP i ruchu HTTPS 443. Gdy aplikacje działają jako użytkownicy bez podniesionych uprawnień, używają portów 8080 dla protokołu HTTP i 8081 dla protokołu HTTPS. Porty są wyświetlane w poleceniach EXPOSE w pliku Dockerfile generowanym przez program Visual Studio. Porty w kontenerze określonym w pliku Dockerfile są mapowane na porty hosta przy użyciu mapowań określonych w pliku ustawień uruchamiania. Zobacz ustawienia uruchamiania narzędzi kontenerów. Po uruchomieniu kontenera można wyświetlić odwzorowania portów w oknie Containers. Sprawdź i zdiagnozuj kontenery.
Certyfikaty
Narzędzia do kontenerów w programie Visual Studio obsługują debugowanie aplikacji ASP.NET Core z włączoną obsługą SSL i certyfikatem deweloperskim, tak samo jak można się spodziewać, że będzie działać bez użycia kontenerów. Aby to zrobić, program Visual Studio dodaje kilka dodatkowych kroków w celu wyeksportowania certyfikatu i udostępnienia go kontenerowi. Oto przepływ obsługiwany przez program Visual Studio podczas debugowania w kontenerze:
Gwarantuje, że lokalny certyfikat programowania jest obecny i zaufany na maszynie hosta za pomocą narzędzia
dev-certs.Eksportuje certyfikat do
%APPDATA%\ASP.NET\Httpsz dobrze zabezpieczonym hasłem przechowywanym w magazynie tajemnic użytkownika dla tej konkretnej aplikacji.Montuje woluminy dla następujących katalogów:
*%APPDATA%\Microsoft\UserSecrets*%APPDATA%\ASP.NET\Https
ASP.NET Core szuka certyfikatu, który pasuje do nazwy zestawu w folderze Https, dlatego jest przypisany do kontenera na tej ścieżce. Ścieżkę certyfikatu i hasło można również zdefiniować przy użyciu zmiennych środowiskowych (czyli ASPNETCORE_Kestrel__Certificates__Default__Path i ASPNETCORE_Kestrel__Certificates__Default__Password) lub w pliku tajemnic użytkownika json, na przykład:
{
"Kestrel": {
"Certificates": {
"Default": {
"Path": "c:\\app\\mycert.pfx",
"Password": "strongpassword"
}
}
}
}
Jeśli konfiguracja obsługuje zarówno konteneryzowane, jak i niekontenerowane kompilacje, należy użyć zmiennych środowiskowych, ponieważ ścieżki są specyficzne dla środowiska kontenera.
Aby uzyskać więcej informacji na temat używania protokołu SSL z aplikacjami ASP.NET Core w kontenerach, zobacz Hosting ASP.NET Core images with Docker over HTTPS.
Aby zapoznać się z przykładem kodu, który demonstruje tworzenie certyfikatów niestandardowych dla aplikacji wielousługowej, która jest zaufana na hoście i w kontenerach dla komunikacji między usługami HTTPS, zobacz CertExample.
Jeśli planujesz wdrożyć konteneryzowaną aplikację na platformie Azure, zobacz Konfigurowanie protokołu HTTPS podczas wdrażania konteneryzowanych aplikacji na platformie Azure.