Udostępnij przez


Certyfikaty i środowisko App Service Environment

Środowisko usługi App Service to wdrożenie usługi Azure App Service działającej w Twojej sieci wirtualnej Azure. Można go wdrożyć za pomocą internetowego punktu końcowego aplikacji lub punktu końcowego aplikacji, który znajduje się w sieci wirtualnej. Jeśli wdrożysz środowisko App Service Environment z dostępnym przez Internet punktem końcowym, wdrożenie to jest nazywane zewnętrznym środowiskiem App Service Environment. Jeśli wdrożysz środowisko App Service Environment z punktem końcowym w swojej sieci wirtualnej, takie wdrożenie nazywane jest ILB App Service Environment (środowisko z wewnętrznym modułem równoważenia obciążenia). Więcej informacji na temat środowiska ILB App Service Environment można uzyskać w dokumencie Tworzenie i używanie środowiska ILB App Service Environment.

Certyfikaty aplikacji

Aplikacje hostowane w środowisku App Service Environment obsługują następujące funkcje certyfikatów skoncentrowanych na aplikacji, które są również dostępne w wielodostępnej usłudze App Service. Aby uzyskać wymagania i instrukcje dotyczące przekazywania tych certyfikatów i zarządzania nimi, zobacz Dodawanie certyfikatu TLS/SSL w usłudze Azure App Service.

Po dodaniu certyfikatu do aplikacji usługi App Service lub aplikacji funkcji możesz zabezpieczyć niestandardową nazwę domeny za pomocą niego lub użyć jej w kodzie aplikacji.

Limitations

Certyfikaty zarządzane usługi App Service nie są obsługiwane w aplikacjach hostowanych w środowisku App Service Environment.

Ustawienia protokołu TLS

Ustawienie PROTOKOŁU TLS można skonfigurować na poziomie aplikacji.

Certyfikaty główne dla scenariuszy klienta prywatnego

Gdy aplikacja działa jako klient łączący się z usługami zabezpieczonymi za pomocą prywatnych certyfikatów urzędu certyfikacji, należy dodać certyfikaty główne w celu ustanowienia zaufania. Środowisko App Service Environment w wersji 3 udostępnia dwie metody zarządzania certyfikatami głównymi:

  • Interfejs API certyfikatu głównego (zalecane): zarządzanie całym środowiskiem dla wszystkich aplikacji
  • Certyfikat klienta prywatnego: konfiguracja poszczególnych aplikacji przy użyciu ustawień aplikacji

Wybieranie właściwej metody

Metoda Scope Użyj, gdy Limitations
API certyfikatu głównego Wszystkie aplikacje w środowisku App Service Environment — Zarządzasz wieloma aplikacjami, które potrzebują tych samych certyfikatów głównych
— Potrzebujesz scentralizowanego zarządzania certyfikatami
— Wdrażasz nowe środowiska przy użyciu infrastruktury jako kodu
— Wymaga zatrzymania i uruchomienia istniejących aplikacji w celu pobrania nowych certyfikatów
- Wymaga użycia narzędzi API/interfejsu wiersza polecenia/IaC (obecnie niedostępne w portalu Azure)
Certyfikat klienta prywatnego Aplikacje w jednym planie usługi App Service — Potrzebujesz certyfikatów tylko dla kilku aplikacji
— Preferujesz konfigurację opartą na portalu
— Różne aplikacje wymagają różnych certyfikatów głównych
— Tylko aplikacje kodu systemu Windows
— Musi oddzielnie skonfigurować każdy plan usługi App Service
— Certyfikaty niedostępne poza kodem aplikacji (nie można ich używać do uwierzytelniania rejestru kontenerów ani weryfikacji TLS warstwy frontowej)

Ogólne zalecenie dotyczy używania interfejsu API certyfikatu głównego do nowych wdrożeń i zarządzania certyfikatami w wielu aplikacjach. Zapewnia lepszą skalowalność, obsługę automatyzacji i działa zarówno dla aplikacji systemu Windows, jak i Linux.

Interfejs API certyfikatu root

Interfejs API certyfikatu głównego umożliwia programowe dodawanie certyfikatów głównych do środowiska App Service Environment w wersji 3, dzięki czemu są one dostępne dla wszystkich aplikacji podczas uruchamiania. Certyfikaty główne to certyfikaty publiczne, które identyfikują główny urząd certyfikacji i są niezbędne do ustanowienia zaufania do bezpiecznej komunikacji. Dodając certyfikaty główne do środowiska App Service Environment, wszystkie aplikacje hostowane w tym środowisku mają certyfikaty zainstalowane w ich magazynie głównym, zapewniając bezpieczną komunikację z usługami wewnętrznymi lub interfejsami API korzystającymi z certyfikatów wystawionych przez prywatne lub firmowe urzędy certyfikacji.

Ta funkcja jest dostępna zarówno dla aplikacji opartych na systemie Windows, jak i Linux w środowisku App Service Environment w wersji 3. Certyfikaty główne dodane za pośrednictwem tego interfejsu API są automatycznie wstrzykiwane do magazynu zaufania aplikacji podczas uruchamiania, eliminując konieczność konfiguracji dla poszczególnych aplikacji i upraszczając zarządzanie cyklem życia certyfikatów.

Ważne uwagi

  • Certyfikaty można dodawać do środowiska App Service Environment przy użyciu interfejsu API REST, interfejsu wiersza polecenia platformy Azure, szablonów usługi ARM, Bicep lub narzędzia Terraform.
  • Jeśli dodasz certyfikat do środowiska App Service Environment z istniejącymi lub uruchomionymi aplikacjami, musisz zatrzymać , a następnie uruchomić każdą aplikację, aby magazyn certyfikatów został zaktualizowany przy użyciu nowego certyfikatu głównego. Przed utworzeniem aplikacji zaleca się dodanie wszystkich certyfikatów, aby wyeliminować konieczność zatrzymywania i uruchamiania aplikacji osobno.
    • Operacje zatrzymywania i uruchamiania różnią się od ponownego uruchamiania aplikacji. Musisz użyć dedykowanych poleceń zatrzymania i uruchamiania dostępnych w witrynie Azure Portal, interfejsie wiersza polecenia platformy Azure lub interfejsie API REST.
    • Uruchamianie i zatrzymywanie aplikacji powoduje tymczasowe awarie podczas zatrzymywania aplikacji.
    • Jeśli masz wiele aplikacji i chcesz zautomatyzować ten proces, możesz użyć interfejsu wiersza polecenia platformy Azure lub interfejsu API REST.
  • Podczas procesu dodawania certyfikatu należy podać cały obiekt blob certyfikatu w żądaniu. Nie można przekazać pliku .cer bezpośrednio.

Dodawanie certyfikatu głównego

Aby dodać certyfikat główny do środowiska App Service Environment, użyj jednej z następujących metod:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates/{certificateName}?api-version=2024-04-01

Content-Type: application/json

{
  "location": "{location}",
  "properties": {
    "blob": "{raw certificate blob}",
    "isRoot": true
  }
}

Zastąp następujące symbole zastępcze:

  • {subscriptionId}: Identyfikator subskrypcji platformy Azure
  • {resourceGroupName}: grupa zasobów zawierająca środowisko App Service Environment
  • {aseName}: nazwa Twojego środowiska App Service Environment
  • {certificateName}: nazwa zasobu certyfikatu
  • {location}: region świadczenia usługi Azure, w którym wdrożono środowisko App Service Environment
  • {raw certificate blob}: Surowy obiekt blob z głównego certyfikatu

Usuwanie certyfikatu głównego

Aby usunąć certyfikat główny ze środowiska App Service Environment:

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates/{certificateName}?api-version=2024-04-01

Pobieranie określonego certyfikatu

Aby pobrać określony certyfikat główny ze środowiska App Service Environment:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates/{certificateName}?api-version=2024-04-01

Pobieranie wszystkich certyfikatów publicznych

Aby pobrać wszystkie certyfikaty publiczne ze środowiska App Service Environment:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/publicCertificates?api-version=2024-04-01

Zatrzymywanie i uruchamianie aplikacji

Po dodaniu certyfikatu głównego do środowiska App Service Environment z istniejącymi aplikacjami należy zatrzymać i uruchomić każdą aplikację, aby zaktualizować magazyn certyfikatów.

  1. Przejdź do aplikacji w witrynie Azure Portal.
  2. Wybierz Zatrzymaj na stronie głównej.
  3. Poczekaj na całkowite zatrzymanie aplikacji.
  4. Wybierz pozycję Uruchom, aby ponownie uruchomić aplikację.

Certyfikat klienta prywatnego (konfiguracja dla aplikacji)

Note

W większości scenariuszy należy użyć interfejsu API certyfikatu głównego zamiast tej metody. Interfejs API certyfikatów głównych zapewnia zarządzanie certyfikatami w całym środowisku dla aplikacji systemu Windows i Linux, podczas gdy ta metoda jest ograniczona do aplikacji kodu systemu Windows w ramach jednego planu usługi App Service.

Jeśli musisz skonfigurować certyfikaty główne tylko dla określonych aplikacji lub jeśli wolisz korzystać z witryny Azure Portal, możesz użyć metody certyfikatu klienta prywatnego. Takie podejście przekazuje certyfikaty do poszczególnych aplikacji i udostępnia je aplikacjom w tym samym planie usługi App Service.

Ważne

Certyfikaty klientów prywatnych są obsługiwane tylko przy użyciu kodu niestandardowego w aplikacjach Windows. Certyfikaty klienta prywatnego nie są obsługiwane poza aplikacją. Ogranicza to użycie w scenariuszach, takich jak pobieranie obrazu kontenerowego aplikacji z rejestru przy użyciu certyfikatu prywatnego i weryfikowanie protokołu TLS przez serwery front-end przy użyciu prywatnego certyfikatu.

Wykonaj następujące kroki, aby przesłać certyfikat (.cer plik) do aplikacji w Środowisku usług aplikacji. Plik .cer można wyeksportować z certyfikatu. Na potrzeby testowania na końcu znajduje się przykład programu PowerShell, który umożliwia wygenerowanie tymczasowego certyfikatu z podpisem własnym:

  1. Przejdź do aplikacji, która wymaga certyfikatu w witrynie Azure Portal

  2. Przejdź do pozycji Certyfikaty w aplikacji. Wybierz Certyfikat klucza publicznego (.cer). Wybierz pozycję Dodaj certyfikat. Podaj nazwę. Przeglądaj i wybierz plik .cer . Wybierz Przekaż

  3. Skopiuj odcisk palca.

  4. Przejdź do Konfiguracja>Ustawienia aplikacji. Utwórz ustawienie aplikacji WEBSITE_LOAD_ROOT_CERTIFICATES, w którym wartością będzie odcisk palca. Jeśli masz wiele certyfikatów, możesz umieścić je w tym samym ustawieniu oddzielonym przecinkami i bez białych znaków, takich jak

    84EC242A4EC7957817B8E48913E50953552DAFA6,6A5C65DC9247F762FE17BF8D4906E04FE6B31819

Certyfikat jest dostępny do użytku przez wszystkie aplikacje w tym samym planie usługi App Service co aplikacja, która skonfigurowała to ustawienie. Natomiast wszystkie aplikacje zależne od certyfikatu z prywatnego urzędu certyfikacji powinny mieć skonfigurowane Ustawienie Aplikacji, aby uniknąć problemów z synchronizacją.

Jeśli potrzebujesz, aby aplikacja była dostępna w innym planie usługi App Service, musisz powtórzyć operację ustawienia aplikacji dla aplikacji w tym planie usługi App Service. Aby sprawdzić, czy certyfikat jest ustawiony, przejdź do konsoli Kudu i wydaj następujące polecenie w konsoli debugowania programu PowerShell:

dir Cert:\LocalMachine\Root

Aby przeprowadzić testowanie, możesz utworzyć certyfikat z podpisem własnym i wygenerować plik .cer przy użyciu następującego programu PowerShell:

$certificate = New-SelfSignedCertificate -CertStoreLocation "Cert:\LocalMachine\My" -DnsName "*.internal.contoso.com","*.scm.internal.contoso.com"

$certThumbprint = "Cert:\LocalMachine\My\" + $certificate.Thumbprint
$fileName = "exportedcert.cer"
Export-Certificate -Cert $certThumbprint -FilePath $fileName -Type CERT

Certyfikat serwera prywatnego (powiązanie TLS/SSL)

Note

W tej sekcji opisano certyfikaty serwera dla powiązań TLS/SSL, które różnią się od omówionych wcześniej certyfikatów głównych. Certyfikaty serwera służą do zabezpieczania domeny niestandardowej aplikacji przy użyciu protokołu HTTPS, a certyfikaty główne ustanawiają zaufanie dla wychodzących połączeń klienckich.

Jeśli Twoja aplikacja działa jako serwer w modelu klient-serwer, za odwrotnym serwerem proxy lub bezpośrednio z prywatnym klientem i używasz prywatnego certyfikatu urzędu certyfikacji, musisz przekazać do aplikacji certyfikat serwera (plik .pfx) z pełnym łańcuchem certyfikatów i powiązać go z domeną niestandardową. Ponieważ infrastruktura jest dedykowana dla Twojego środowiska App Service Environment, pełny łańcuch certyfikatów jest dodawany do serwerowego magazynu zaufania. Należy wgrać certyfikat tylko raz, aby używać go z aplikacjami znajdującymi się w tym samym środowisku App Service.

Note

Jeśli certyfikat został przekazany przed 1 października 2023 r., należy ponownie załadować i ponownie połączyć certyfikat, aby pełny łańcuch certyfikatów został dodany do serwerów.

Postępuj zgodnie z samouczkiem dotyczącym bezpiecznej domeny niestandardowej przy użyciu protokołu TLS/SSL, aby przekazać/powiązać certyfikat z prywatnego urzędu certyfikacji z aplikacją w środowisku App Service Environment.

Dalsze kroki