Freigeben über


Konfigurieren eines benutzerdefinierten Domänennamens für Ihre Azure API Management-Instanz

GILT FÜR: Alle API Management-Ebenen

Wenn Sie eine Azure API Management-Dienstinstanz in der Azure-Cloud erstellen, weist Azure dieser einer Unterdomäne von azure-api.net zu (z. B. apim-service-name.azure-api.net). Sie können Ihre API Management-Endpunkte auch unter Ihrem eigenen benutzerdefinierten Domänennamen verfügbar machen (z. B. contoso.com ). In diesem Artikel erfahren Sie, wie Sie Endpunkten, die durch eine API Management-Instanz verfügbar gemacht werden, einen vorhandenen benutzerdefinierten DNS-Namen zuordnen.

Wichtig

API Management akzeptiert nur Anforderungen, bei denen der Hostheaderwert mit einem der folgenden Werte übereinstimmt:

  • Standarddomänenname des Gateways
  • Beliebiger benutzerdefinierter Domänenname, der für das Gateway konfiguriert ist

Hinweis

Derzeit werden benutzerdefinierte Domänennamen in einem Arbeitsbereichs-Gateway nicht unterstützt.

Wichtig

Änderungen an der Infrastruktur Ihres API-Verwaltungsdiensts (z. B. Konfigurieren von benutzerdefinierten Domänen, Hinzufügen von Zertifizierungsstellenzertifikaten, Skalierung, Konfiguration virtueller Netzwerke, Änderungen der Verfügbarkeitszone und Regionszufügungen) können je nach Dienstebene und Größe der Bereitstellung 15 Minuten oder länger dauern. Bei Instanzen mit einer größeren Anzahl von Skalierungseinheiten oder einer Konfiguration mit mehreren Regionen können Sie mit längeren Zeiten rechnen. Laufende Änderungen an der API-Verwaltung werden sorgfältig ausgeführt, um Kapazität und Verfügbarkeit zu bewahren.

Während der Dienst aktualisiert wird, können andere Änderungen an der Dienstinfrastruktur nicht vorgenommen werden. Sie können jedoch APIs, Produkte, Richtlinien und Benutzereinstellungen konfigurieren. Der Dienst erlebt keine Ausfallzeiten des Gateways, und die API-Verwaltung wird weiterhin API-Anforderungen ohne Unterbrechung (mit Ausnahme der Entwicklerebene) dienstieren.

Voraussetzungen

  • Eine API Management-Instanz. Weitere Informationen finden Sie unter Erstellen einer neuen Azure API Management-Dienstinstanz.

  • Einen benutzerdefinierten Domänennamen, der sich in Ihrem Besitz oder im Besitz Ihrer Organisation befindet. Dieser Artikel enthält keine Anleitung zum Erwerben eines benutzerdefinierten Domänennamens.

  • Optional: Ein gültiges Zertifikat mit einem öffentlichen und privaten Schlüssel (.pfx). Der Antragstellername oder der alternative Antragstellername (Subject Alternative Name, SAN) muss dem Domänennamen entsprechen, damit die API Management-Instanz auf sichere Weise URLs über TLS verfügbar machen kann.

    Siehe Domänenzertifikatoptionen.

  • DNS-Einträge, die auf einem DNS-Server gehostet werden, der den benutzerdefinierten Domänennamen dem Standarddomänennamen Ihrer API Management-Instanz zuordnet. Dieser Artikel enthält keine Anleitung zum Hosten der DNS-Einträge.

    Weitere Informationen zu den erforderlichen Einträgen finden Sie weiter unten in diesem Artikel unter DNS-Konfiguration.

Endpunkte für benutzerdefinierte Domänen

Es gibt verschiedene API Management-Endpunkte, denen Sie einen benutzerdefinierten Domänennamen zuweisen können. Derzeit sind folgende Endpunkte verfügbar:

Endpunkt Standard
Tor Der Standardwert ist <apim-service-name>.azure-api.net. Gateway ist der einzige Endpunkt, der zur Konfiguration im Tarif „Verbrauch“ verfügbar ist.

Die Standardkonfiguration des Gatewayendpunkts bleibt verfügbar, nachdem eine benutzerdefinierte Gatewaydomäne hinzugefügt wurde.
Entwicklerportal (alle Ebenen mit Ausnahme des Verbrauchs) Der Standardwert ist <apim-service-name>.developer.azure-api.net.
Verwaltung (nur klassische Ebenen) Der Standardwert ist <apim-service-name>.management.azure-api.net.
Selbst gehostete Gatewaykonfigurations-API (v2) Der Standardwert ist <apim-service-name>.configuration.azure-api.net.
SCM (nur klassische Ebenen) Der Standardwert ist <apim-service-name>.scm.azure-api.net.

Überlegungen

  • Sie können jeden der Endpunkte aktualisieren, die in Ihrer Dienstebene unterstützt werden. In der Regel aktualisieren Kunden Gateway (diese URL wird zum Aufrufen der über API Management verfügbar gemachten API verwendet) und Entwicklerportal (die URL des Entwicklerportals).
  • Der Standardendpunkt Gateway ist noch verfügbar, nachdem Sie einen benutzerdefinierten Gatewaydomänennamen konfiguriert haben, und kann nicht gelöscht werden. Für andere API Management-Endpunkte (z. B. Entwicklerportal), die Sie mit einem benutzerdefinierten Domänennamen konfigurieren, ist der Standardendpunkt nicht mehr verfügbar.
  • Nur API Management-Instanzbesitzer können Verwaltungs- und SCM-Endpunkte intern verwenden. Diesen Endpunkten wird seltener ein benutzerdefinierter Domänenname zugewiesen.
  • In den Tarifen Premium und Developer können mehrere Hostnamen für den Endpunkt Gateway festgelegt werden.
  • Platzhalterdomänennamen wie *.contoso.com werden in allen Tarifen mit Ausnahme des Tarifs „Verbrauch“ unterstützt. Ein spezifisches Unterdomänen-Zertifikat (z. B. api.contoso.com) hätte Vorrang vor einem Platzhalterzertifikat (*.contoso.com) für Anforderungen an api.contoso.com.
  • Beim Konfigurieren einer benutzerdefinierten Domäne für das Entwicklerportal können Sie CORS für den neuen Domänennamen aktivieren. Dies ist für Entwicklerportalbesucher erforderlich, um die interaktive Konsole auf den API-Referenzseiten zu verwenden.

Domänenzertifikatoptionen

API Management unterstützt benutzerdefinierte TLS-Zertifikate oder aus Azure Key Vault importierte Zertifikate. Sie können auch ein kostenloses, verwaltetes Zertifikat aktivieren.

Warnung

Wenn Sie das Anheften von Zertifikaten brauchen, sollten Sie einen benutzerdefinierten Domänennamen und entweder ein benutzerdefiniertes oder ein Key Vault-Zertifikat nutzen, nicht das Standardzertifikat oder das kostenlose verwaltete Zertifikat. Es wird davon abgeraten, eine feste Abhängigkeit von einem Zertifikat zu definieren, das Sie nicht verwalten.

Wenn Sie bereits über ein privates Zertifikat von einem Drittanbieter verfügen, können Sie es in Ihre API Management-Instanz hochladen. Es muss die folgenden Anforderungen erfüllen. (Wenn Sie das kostenlose Zertifikat aktivieren, das von API Management verwaltet wird, erfüllt es diese Anforderungen bereits.)

  • Exportiert als PFX-Datei, mit Triple DES verschlüsselt und optional kennwortgeschützt
  • Enthält einen privaten Schlüssel mit mindestens 2048 Bit
  • Enthält alle Zwischenzertifikate und das Stammzertifikat in der Zertifikatkette.

Festlegen eines benutzerdefinierten Domänennamens – Portal

Wählen Sie die Schritte gemäß Domänenzertifikat aus, das Sie verwenden möchten.

  1. Navigieren Sie im Azure-Portal zu Ihrer API Management-Instanz.
  2. Wählen Sie im linken Navigationsbereich die Option Benutzerdefinierte Domänen aus.
  3. Klicken Sie auf +Hinzufügen, oder wählen Sie einen vorhandenen Endpunkt aus, den Sie aktualisieren möchten.
  4. Wählen Sie im Fenster auf der rechten Seite den Typ des Endpunkts für die benutzerdefinierte Domäne aus.
  5. Geben Sie im Feld Hostname den gewünschten Namen an. Beispiel: api.contoso.com.
  6. Wählen Sie unter Zertifikat die Option Benutzerdefinierte aus.
  7. Wählen Sie Zertifikatdatei aus, um ein Zertifikat auszuwählen und hochzuladen.
  8. Wenn das Zertifikat mit einem Kennwort geschützt ist, laden Sie eine gültige PFX-Datei hoch, und geben Sie deren Kennwort an.
  9. Wählen Sie beim Konfigurieren eines Gatewayendpunkts nach Bedarf weitere Optionen aus, bzw. deaktivieren Sie sie, z. B. Clientzertifikat aushandeln oder Standard-SSL-Bindung. Gateway Domäne mit benutzerdefiniertes Zertifikat konfigurieren
  10. Klicken Sie auf +Hinzufügen, oder wählen Sie für einen vorhandenen Endpunkt Aktualisieren aus.
  11. Wählen Sie Speichern aus.

DNS-Konfiguration

  • Konfigurieren Sie einen CNAME-Eintrag für Ihre benutzerdefinierten Domäne.
  • Wenn Sie das kostenlose, von API Management verwaltete Zertifikat verwenden, konfigurieren Sie auch einen TXT-Eintrag, um Ihren Domänenbesitz festzulegen.

Hinweis

Das kostenlose Zertifikat wird von DigiCert ausgestellt. Bei einigen Domänen müssen Sie DigiCert explizit als Zertifikataussteller zulassen, indem Sie einen CAA-Domäneneintrag mit dem folgenden Wert erstellen: 0 issue digicert.com.

CNAME-Eintrag

Konfigurieren Sie einen CNAME-Eintrag, der von Ihrem benutzerdefinierten Domänennamen (z. B. api.contoso.com) auf Ihren API Management-Diensthostnamen verweist (z. B. <apim-service-name>.azure-api.net). Ein CNAME-Eintrag ist beständiger als ein A-Eintrag, falls sich die IP-Adresse ändert. Weitere Informationen finden Sie unter IP-Adressen des API Management-Diensts und Häufig gestellte Fragen zu Azure API Management.

Hinweis

Bei einigen Domänenregistrierungsstellen dürfen Sie Unterdomänen nur mit einem CNAME-Eintrag wie www.contoso.com zuweisen und nicht mit einem Stammnamen wie contoso.com. Weitere Informationen zu CNAME-Einträgen finden Sie in der von Ihrer Registrierungsstelle zur Verfügung gestellten Dokumentation oder unter IETF Domain Names – Implementation and Specification.

Achtung

Wenn Sie das kostenlose verwaltete Zertifikat verwenden und einen CNAME-Eintrag mit Ihrem DNS-Anbieter konfigurieren, stellen Sie sicher, dass er in den Standardhostnamen des API Management-Diensts (<apim-service-name>.azure-api.net) aufgelöst wird. Derzeit erneuert API Management das Zertifikat nicht automatisch, wenn der CNAME-Eintrag nicht in den Standardhostnamen von API Management aufgelöst wird. Wenn Sie beispielsweise das kostenlose verwaltete Zertifikat verwenden und Cloudflare als DNS-Anbieter verwenden, stellen Sie sicher, dass der DNS-Proxy für den CNAME-Eintrag nicht aktiviert ist.

TXT-Eintrag

Wenn Sie das kostenlose, verwaltete Zertifikat für API Management aktivieren, konfigurieren Sie auch einen TXT-Eintrag in Ihrer DNS-Zone, um den Besitz des Domänennamens festzulegen.

  • Der Name des Eintrags ist ihr benutzerdefinierter Domänenname mit dem Präfix apimuid. Beispiel: apimuid.api.contoso.com.
  • Der Wert ist ein Domänenbesitzbezeichner, der von Ihrer API Management-Instanz bereitgestellt wird.

Wenn Sie das kostenlose, verwaltete Zertifikat für Ihre benutzerdefinierte Domäne mit dem Portal konfigurieren, werden der Name und der Wert des erforderlichen TXT-Eintrags automatisch angezeigt.

Sie können auch einen Domänenbesitzbezeichner abrufen, indem Sie die REST-API zum Abrufen eines Domänenbesitzbezeichners aufrufen.

Antworten des API Management-Proxyservers mit SSL-Zertifikaten beim TLS-Handshake

Beim Konfigurieren einer benutzerdefinierten Domäne für den Gatewayendpunkt können Sie über zusätzliche Eigenschaften bestimmen, wie API Management abhängig von der Clientanforderung mit einem Serverzertifikat antwortet.

Aufrufen von Clients mit dem SNI-Header (Server Name Indication, Servernamensanzeige)

Wenn Sie eine oder mehrere benutzerdefinierte Domänen für den Gatewayendpunkt konfiguriert haben, kann API Management auf HTTPS-Anforderungen aus folgenden beiden Domänen antworten:

  • Benutzerdefinierte Domäne (z. B. contoso.com)
  • Standarddomäne (z. B. apim-service-name.azure-api.net)

Basierend auf den Informationen im SNI-Header antwortet API Management mit dem entsprechenden Serverzertifikat.

Aufrufen von Clients ohne den SNI-Header

Wenn Sie einen Client verwenden, der den SNI-Header nicht sendet, erstellt API Management Antworten gemäß der folgenden Logik:

  • Wenn der Dienst nur eine für das Gateway konfigurierte benutzerdefinierte Domäne enthält, ist das Standardzertifikat das Zertifikat, das für die benutzerdefinierte Gatewaydomäne ausgestellt wurde.

  • Wenn im Dienst mehrere benutzerdefinierte Domänen für das Gateway konfiguriert sind (unterstützt in den Tarifen Developer und Premium), können Sie das Standardzertifikat definieren, indem Sie die Eigenschaft defaultSslBinding auf TRUE festlegen ("defaultSslBinding":"true"). Aktivieren Sie im Portal das Kontrollkästchen Standard-SSL-Bindung.

    Wenn Sie die Eigenschaft nicht festlegen, ist das Standardzertifikat das Zertifikat, das für die unter *.azure-api.net gehostete Gatewaystandarddomäne ausgestellt wird.

Unterstützung für PUT/POST-Anforderung mit großer Nutzlast

Der API Management-Proxyserver unterstützt Anforderungen mit großen Nutzdaten (> 40 KB) bei der Verwendung von clientseitigen Zertifikaten in HTTPS. Um zu verhindern, dass die Serveranforderung blockiert wird, können Sie die Eigenschaft negotiateClientCertificate für den Gatewayhostnamen auf TRUE ("negotiateClientCertificate": "true") festlegen. Aktivieren Sie im Portal das Kontrollkästchen Clientzertifikat aushandeln.

Wenn die Eigenschaft auf „true“ festgelegt ist, wird vor jedem Austausch von HTTP-Anforderungen zum Zeitpunkt der SSL/TLS-Verbindung das Clientzertifikat angefordert. Da die Einstellung auf der Ebene Gatewayhostname gilt, wird bei allen Verbindungsanforderungen das Clientzertifikat angefordert. Sie können diese Einschränkung umgehen und bis zu 20 benutzerdefinierte Domänen für das Gateway konfigurieren (nur im Premium-Tarif unterstützt).

Einschränkung für den benutzerdefinierten Domänennamen auf der Standard v2-Ebene

Derzeit erfordert die API-Verwaltung auf der Standard-v2-Ebene einen öffentlich aufgelösten DNS-Namen, um den Datenverkehr an den Gatewayendpunkt zuzulassen. Wenn Sie einen benutzerdefinierten Domänennamen für den Gatewayendpunkt konfigurieren, muss dieser Name öffentlich aufgelöst werden können, nicht auf eine private DNS-Zone beschränkt.

Als Problemumgehung in Szenarien, in denen Sie den öffentlichen Zugriff auf das Gateway einschränken und einen privaten Domänennamen konfigurieren, können Sie das Anwendungsgateway so einrichten, dass Datenverkehr über den privaten Domänennamen empfangen und an den Gatewayendpunkt der API-Verwaltungsinstanz weitergeleitet wird. Eine Beispielarchitektur finden Sie in diesem GitHub-Repository.

Problembehandlung: Fehler bei der Rotation des Hostnamenzertifikats aus Azure Key Vault

Aufgrund eines Konfigurationsänderungs- oder Konnektivitätsproblems kann Ihre API-Verwaltungsinstanz möglicherweise kein Hostnamenzertifikat aus Azure Key Vault abrufen, nachdem ein Zertifikat aktualisiert oder dort gedreht wurde. In diesem Fall verwendet Ihre API-Verwaltungsinstanz weiterhin ein zwischengespeichertes Zertifikat, bis es ein aktualisiertes Zertifikat empfängt. Wenn das zwischengespeicherte Zertifikat abläuft, wird der Laufzeitdatenverkehr an das Gateway blockiert. Jeder upstream-Dienst, z. B. Anwendungsgateway, das die Konfiguration des Hostnamenzertifikats verwendet, kann auch den Laufzeitdatenverkehr an das Gateway blockieren, wenn ein abgelaufenes zwischengespeichertes Zertifikat verwendet wird.

Um dieses Problem zu beheben, stellen Sie sicher, dass der Schlüsseltresor vorhanden ist, und das Zertifikat wird im Schlüsseltresor gespeichert. Wenn Ihre API-Verwaltungsinstanz in einem virtuellen Netzwerk bereitgestellt wird, bestätigen Sie die ausgehende Verbindung mit dem AzureKeyVault-Diensttag. Überprüfen Sie, ob die verwaltete Identität für den Zugriff auf den Schlüsseltresor vorhanden ist. Bestätigen Sie die Berechtigungen für den Zugriff auf den Schlüsseltresor. Lesen Sie "Einrichten eines benutzerdefinierten Domänennamens – Key Vault" weiter oben in diesem Artikel, um detaillierte Konfigurationsschritte zu erfahren. Nachdem die Konfiguration wiederhergestellt wurde, wird das Hostnamenzertifikat innerhalb von 4 Stunden in der API-Verwaltung aktualisiert.

Upgrade and scale an API Management instance (Upgraden und Skalieren einer API Management-Instanz)