Ich kann keine Verbindung zum benutzerdefinierten Domain-Namen für mein API-Gateway herstellen und erhalte Fehler bei der DNS-Auflösung oder bei der Nichtübereinstimmung des SSL-Zertifikats.
Lösung
Behebe Fehler in der öffentlichen API bei benutzerdefinierten Domains
Um eine Verbindung zu einem benutzerdefinierten Domain-Namen für öffentliche API Gateway-APIs herzustellen, musst du Amazon Route 53 so konfigurieren, dass der Datenverkehr an einen API Gateway-Endpunkt weitergeleitet wird.
Wenn du die DNS-Datensätze für den benutzerdefinierten Domain-Namen nicht dem richtigen API-Gateway-Domain-Namen zuordnest, schlägt die SSL-Verbindung fehl. Dies liegt daran, dass das Standardzertifikat *.execute-api.<region>.amazonaws.com anstelle des SSL/TLS-Zertifikats zurückgegeben wird.
Führe den folgenden Befehl aus, um zu überprüfen, ob du die DNS-Datensätze korrekt zugeordnet hast:
nslookup custom-domain-name
Hinweis: Ersetze custom-domain-name durch deinen benutzerdefinierten Domain-Namen.
Die Ausgabe gibt den API-Gateway-Domain-Namen zurück. Stelle sicher, dass der benutzerdefinierte Domain-Name mit dem API-Gateway-Domain-Namen übereinstimmt. Wenn du einen Route 53-Aliasdatensatz verwendest, um dein DNS zuzuordnen, gibt die Ausgabe die IP-Adresse zurück. Stelle sicher, dass die IP-Adresse mit der IP-Adresse des API-Gateway-Domain-Namens übereinstimmt.
Behebe Fehler mit benutzerdefinierten Domains in der privaten API
Um eine Verbindung zu einem benutzerdefinierten Domain-Namen für private API-Gateway-APIs herzustellen, musst du Route 53 so konfigurieren, dass der Datenverkehr an einen DNS-Namen für den Virtual Private Cloud (VPC)-Endpunkt weitergeleitet wird.
Um zu überprüfen, ob der zugeordnete DNS-Datensatz korrekt ist, führe den folgenden Befehl aus:
nslookup custom-domain-name
Hinweis: Ersetze custom-domain-name durch deinen benutzerdefinierten Domain-Namen.
Die Ausgabe gibt die private IP-Adresse des execute-api-VPC-Endpunkts zurück. Stelle sicher, dass die IP-Adresse mit der IP-Adresse des Subnetzes des VPC-Endpunkts übereinstimmt, das du mit deinem API-Gateway konfiguriert hast.
Stelle sicher, dass du eine Zuordnung zum Domain-Namen-Zugriff zwischen deinem benutzerdefinierten Domain-Namen und deinem Execute-API-VPC-Endpunkt erstellt hast.
Führe den folgenden Befehl aus, um zu überprüfen, ob du die Domain-Namen-Zugriffszuordnung erstellt hast:
curl https://custom-domain-name/resource-path
Hinweis: Ersetze custom-domain-name durch deinen benutzerdefinierten Domain-Namen und resource-path durch deinen Ressourcenpfad.
Wenn du die Verknüpfung erstellt hast, gibt die Ausgabe die Antwort von deinem Integrationsendpunkt zurück. Wenn du die Zuordnung nicht erstellt hast, schlägt die SSL-Verbindung mit der Fehlermeldung „SSL: no alternative certificate subject name matches target host name“ fehl.
Hinweis: Wenn du in Route 53 einen benutzerdefinierten Domain-Namen für eine regionale oder Edge-optimierte öffentliche API konfigurierst, musst du eine öffentliche gehostete Zone erstellen. Wähle für öffentliche Anwendungen mit Ressourcen, die du Benutzern zur Verfügung stellen möchtest, eine öffentliche gehostete Zone aus.
Wenn du eine benutzerdefinierte Domain für eine private API erstellst, musst du eine private gehostete Zone erstellen und deine Client-VPC an die gehostete Zone anhängen.
Route 53 verwendet Datensätze, um zu bestimmen, wohin du den Verkehr für deine Domain weiterleiten möchtest. Du kannst auswählen, ob du entweder einen Aliasdatensatz oder einen CNAME-Datensatz verwenden möchtest.
Ähnliche Informationen
Bereite Zertifikate in AWS Certificate Manager vor
Wie kann ich einen benutzerdefinierten Domain-Namen für meine API Gateway-API einrichten?
Einen benutzerdefinierten Domain-Namen zu einem anderen API-Endpunkttyp in API Gateway migrieren