Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kommentar
Planerna Basic, Standardoch Enterprise gick in i en pensionsperiod den 17 mars 2025. Mer information finns i meddelandet om azure Spring Apps-pensionering.
Den här artikeln gäller för:✅ Basic/Standard ✅ Enterprise
Att migrera din anpassade domän med TLS/SSL från Azure Spring Apps till Azure Container Apps innebär flera steg för att säkerställa en smidig övergång. Den här artikeln beskriver processen som omfattar klienttrafik, trafik mellan program och trafik till externa tjänster.
Förutsättningar
- En befintlig Azure-containerapp. För mer information, se Snabbstart: Distribuera din första containerapp med hjälp av Azure-portalen.
- Azure CLI.
- Ett befintligt TLS/SSL-certifikat – till exempel ett certifikat som lagras i Azure KeyVault.
- (Valfritt) Ett befintligt Azure Storage-konto om du vill ladda upp certifikatet till det betrodda lagret från Azure storage-fildelning. Mer information finns i Skapa ett Azure-lagringskonto.
Klienttrafik till programmet
Som standard använder all inkommande trafik i containerappen HTTPS om du inte aktiverar HTTP-trafik manuellt, vilket du kan göra med hjälp av följande kommando:
az containerapp ingress update \
--resource-group "my-resource-group" \
--name "my-app" \
--allow-insecure
Mer information om hur du konfigurerar ingress för din app finns i Konfigurera ingress för din app i Azure Container Apps.
Anpassad domän
Om du vill skydda anpassade DNS-namn (Domain Name System) i Azure Container Apps kan du lägga till digitala säkerhetscertifikat. Detta stöder säker kommunikation mellan dina appar.
Om du behöver skydda din anpassade domän i Azure Container Apps kan du använda ett privat certifikat som är kostnadsfritt och enkelt att använda. Mer information finns i Anpassade domännamn och kostnadsfria hanterade certifikat i Azure Container Apps.
Om du har ett privat certifikat som lagras lokalt kan du ladda upp det. Mer information finns i Anpassade domännamn och ta med egna certifikat i Azure Container Apps.
Om certifikatet kommer från Azure Key Vault kan du importera certifikat till Azure Container Apps direkt. Mer information finns i Importera certifikat från Azure Key Vault till Azure Container Apps.
Om du vill fortsätta använda det ursprungliga certifikatet och domännamnet från Azure Spring Apps kan du ladda upp certifikatet till containerappar eller Azure Key Vault. Du kan också uppdatera A-posten eller CNAME i DNS-providern för att omdirigera det ursprungliga domännamnet till containerappens IP-adress eller URL.
Aktivera mTLS mellan klient- och containerappar
Använd följande steg för att aktivera ömsesidig TLS (mTLS) mellan klient- och containerappar:
Använd följande kommando för att exportera konfigurationen av containerappen i YAML-format:
az containerapp show \ --resource-group "my-resource-group" \ --name "my-app" \ --output yaml > app.yamlclientCertificateModeUppdatera värdet i app.yaml enligt följande exempel:properties: configuration: ingress: clientCertificateMode: requireDu kan ange den här egenskapen till något av följande värden:
-
require: Klientcertifikatet krävs för alla begäranden till containerappen. -
accept: Klientcertifikatet är valfritt. Om klientcertifikatet inte tillhandahålls godkänns fortfarande begäran. -
ignore: Klientcertifikatet ignoreras.
-
Använd följande kommando för att tillämpa
clientCertificateModeändringen på containerappen:az containerapp update \ --resource-group "my-resource-group" \ --name "my-app" \ --yaml app.yaml
Mer information finns i Konfigurera klientcertifikatautentisering i Azure Container Apps.
Du måste hantera verifiering av klientcertifikat i koden.
Trafik mellan program
Som standard använder trafik mellan containerappar i samma miljö HTTP. För att skydda den här trafiken aktiverar du peer-to-peer-kryptering med följande kommandon:
# enable when creating the container app
az containerapp env create \
--resource-group "my-resource-group" \
--name "my-app" \
--location "location" \
--enable-peer-to-peer-encryption
# enable for the existing container app
az containerapp env update \
--resource-group "my-resource-group" \
--name "my-app" \
--enable-peer-to-peer-encryption
När det är aktiverat skyddar Azure Container Apps automatiskt HTTP-trafik via den inbyggda transparenta proxyfunktionen. Ditt program behöver vanligtvis inte bry sig om huruvida trafiken är krypterad eller inte.
Om du vill använda HTTPS för kommunikation mellan appar internt måste du hantera certifikatverifiering. Det beror på att domännamnet kanske inte matchar certifikatets eget namn (CN) eller alternativt namn på certifikatmottagare (SAN).
Mer information finns i avsnittet Peer-to-peer-krypteringi Konfigurera ingress i en Azure Container Apps-miljö.
Trafik till externa tjänster
Det här exemplet visar hur du aktiverar TLS och mTLS för trafik till externa tjänster genom att läsa in certifikatet från Azure Key Vault med hjälp av spring-cloud-azure-starter-keyvault-jca biblioteket. Java-projektet måste använda Spring Boot 3.1+ och inkludera följande beroende i dinpom.xml-fil :
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-keyvault-jca</artifactId>
<version>5.23.0</version>
</dependency>
Ladda ett certifikat i förtroendelagret från Key Vault med SSL-certifikatpaket
Använd följande steg för att läsa in ett certifikat i förtroendearkivet från Azure Key Vault med hjälp av spring-cloud-azure-starter-keyvault-jca biblioteket:
Generera eller importera certifikat i Azure Key Vault. Mer information finns i Skapa och importera certifikat i Azure Key Vault.
Aktivera hanterad identitet i containerappen. Information om hur du aktiverar hanterad identitet i containerappen finns i Hanterade identiteter i Azure Container Apps.
Key Vault Certificate UserBevilja rollen till den hanterade identiteten i ditt Key Vault. Mer information finns i Metodtips för enskilda nycklar, hemligheter och certifikatrolltilldelningar.Lägg till följande konfiguration i din application.yml-fil :
spring: ssl: bundle: keyvault: tlsClientBundle: truststore: keyvault-ref: keyvault1 cloud: azure: keyvault: jca: vaults: keyvault1: endpoint: ${KEY_VAULT_SSL_BUNDLES_KEYVAULT_URI_01} credential: client-id: ${KEY_VAULT_SSL_BUNDLES_CLIENT_ID} # Required for user-assigned managed identity managed-identity-enabled: trueOm du vill använda Key Vault SSL-paketet uppdaterar du din
RestTemplate- ellerWebClient-bean-konfiguration enligt följande exempel:// For RestTemplate @Bean RestTemplate restTemplateWithTLS(RestTemplateBuilder restTemplateBuilder, SslBundles sslBundles) { return restTemplateBuilder.sslBundle(sslBundles.getBundle("tlsClientBundle")).build(); } // For WebClient @Bean WebClient webClientWithTLS(WebClientSsl ssl) { return WebClient.builder().apply(ssl.fromBundle("tlsClientBundle")).build(); }
Aktivera mTLS-kommunikation
Använd följande steg för att konfigurera mTLS för dubbelriktad autentisering mellan klient och server:
Generera eller importera både klient- och servercertifikat till Azure Key Vault. Mer information finns i Skapa och importera certifikat i Azure Key Vault.
Aktivera hanterad identitet för din containerapp. Information om hur du aktiverar hanterad identitet i containerappen finns i Hanterade identiteter i Azure Container Apps.
Bevilja rollen
Key Vault Certificate Usertill den hanterade identiteten för båda nyckelvalven. Mer information finns i Metodtips för enskilda nycklar, hemligheter och certifikatrolltilldelningar.Lägg till följande konfiguration i din application.yml-fil för mTLS:
spring: ssl: bundle: keyvault: mtlsClientBundle: key: alias: client for-client-auth: true keystore: keyvault-ref: keyvault2 truststore: keyvault-ref: keyvault1 cloud: azure: keyvault: jca: vaults: keyvault1: endpoint: ${KEY_VAULT_SSL_BUNDLES_KEYVAULT_URI_01} credential: client-id: ${KEY_VAULT_SSL_BUNDLES_CLIENT_ID} # Required for user-assigned managed identity managed-identity-enabled: true keyvault2: endpoint: ${KEY_VAULT_SSL_BUNDLES_KEYVAULT_URI_02} credential: client-id: ${KEY_VAULT_SSL_BUNDLES_CLIENT_ID} # Required for user-assigned managed identity managed-identity-enabled: trueOm du vill använda Key Vault SSL-paketet uppdaterar du din
RestTemplate- ellerWebClient-bean-konfiguration enligt följande exempel:// For RestTemplate @Bean RestTemplate restTemplateWithMTLS(RestTemplateBuilder restTemplateBuilder, SslBundles sslBundles) { return restTemplateBuilder.sslBundle(sslBundles.getBundle("mtlsClientBundle")).build(); } // For WebClient @Bean WebClient webClientWithMTLS(WebClientSsl ssl) { return WebClient.builder().apply(ssl.fromBundle("mtlsClientBundle")).build(); }
Mer information om hur du använder spring-cloud-azure-starter-keyvault-jca biblioteket i ditt Spring Boot-program finns i Introduktion till Spring Cloud Azure Starter Key Vault JCA: Streamlined TLS och mTLS for Spring Boot.
Genom att följa dessa steg kan du migrera din anpassade domän med TLS/SSL från Azure Spring Apps till Azure Container Apps och upprätthålla säker och effektiv kommunikation mellan alla trafiktyper.