Warum wurde beim Aufrufen meines benutzerdefinierten API-Gateway-Domänennamens das falsche Zertifikat zurückgegeben?
Ich habe versucht, eine API-Anfrage an meinen benutzerdefinierten Amazon-API-Gateway-Domänennamen zu stellen, aber das falsche Zertifikat wurde zurückgegeben. Was kann ich tun, um das Problem zu beheben?
Kurzbeschreibung
Es gibt zwei Arten von benutzerdefinierten Domänennamen, die Sie für API Gateway-APIs erstellen können: Regional oder (nur für REST-APIs) Edge-optimiert.
Für regionale benutzerdefinierte Domänennamen erstellt API Gateway einen regionalen Domänennamen. Sie müssen einen DNS-Eintrag einrichten, um den benutzerdefinierten Domänennamen dem Hostnamen zuzuordnen, ähnlich wie „d-example.execute-api.<region>.amazonaws.com“.
Für Edge-optimierte benutzerdefinierte Domainnamen erstellt API Gateway eine Amazon-CloudFront-Verteilung. Sie müssen einen DNS-Eintrag einrichten, um den benutzerdefinierten Domänennamen dem CloudFront-Verteilungsnamen zuzuordnen, ähnlich wie „distribution-id.cloudfront.net“.
Im folgenden Szenario wurde das SSL-Zertifikat *.example.com oder www.example.com auf den benutzerdefinierten Domänennamen www.example.com hochgeladen. Eine API-Anfrage an www.beispiel.com gibt einen Fehler zurück, der dem folgenden ähnelt:
In einem Browser:
„Dieser Server konnte nicht nachweisen, dass es sich um www.example.com handelt; sein Sicherheitszertifikat stammt von *.execute-api.us-east-1.amazonaws.com. Dies kann durch eine Fehlkonfiguration oder einen Angreifer verursacht werden, der Ihre Verbindung abfängt.“
Von curl:
„curl: (60) SSL: kein alternativer Betreffname des Zertifikats stimmt mit dem Ziel-Hostnamen „www.example.com“ überein. curl konnte die Legitimität des Servers nicht überprüfen und konnte daher keine sichere Verbindung zu diesem herstellen. Um mehr über diese Situation zu erfahren und zu erfahren, wie Sie sie beheben können, besuchen Sie bitte die oben genannte Webseite.“
Auflösung
Stellen Sie sicher, dass der CNAME- oder A-Datensatz des benutzerdefinierten Domänennamens auf den API-Gateway-Domänennamen und nicht auf die API-Gateway-Staging-URL verweist.
1. Führen Sie den folgenden openssl-Befehl aus, um zu überprüfen, ob das SSL-Zertifikat von der benutzerdefinierten Domäne zurückgegeben wird:
openssl s_client -connect www.example.com:443 -servername www.example.com
Beispielausgabe:
subject=/CN=*.execute-api.us-east-1.amazonaws.com
2. Führen Sie den folgenden dig-Befehl in der benutzerdefinierten Domäne aus:
dig www.example.com
Die Ausgabe des dig-Befehls enthält entweder einen CNAME-Eintrag, der auf die API Gateway-Staging-URL verweist, oder einen A-Datensatz, der auf die IP-Adresse verweist.
3. Überprüfen Sie den DNS-Eintrag für die Domain www.example.com bei Ihrem Domänen-Registrar, um festzustellen, wohin er verweist. Wenn Ihre Domäne bei Amazon Route 53 registriert ist, finden Sie weitere Informationen unter Überprüfen der DNS-Antworten von Route 53.
4. Um zu überprüfen, ob die DNS-Einträge korrekt zugeordnet sind, öffnen Sie die API-Gateway-Konsole. Wählen Sie im Navigationsbereich Benutzerdefinierte Domänennamen aus, und wählen Sie dann Ihre benutzerdefinierte Domäne aus.
5. Wählen Sie unter Domänendetails die Option Konfiguration aus und überprüfen Sie dann den API-Gateway-Domänennamen. Der benutzerdefinierte Domänenname muss dem API-Gateway-Domänennamen zugeordnet werden. Regionale benutzerdefinierte Domainnamen verwenden ein Präfix ähnlich wie „d-example.execute-api. <region>.amazonaws.com“. Edge-optimierte benutzerdefinierte Domänennamen verwenden ein Präfix ähnlich wie „distribution-id.cloudfront.net“.
6. Wenn der CNAME-Eintrag auf die API-Gateway-Staging-URL anstelle des API-Gateway-Domänennamens verweist, aktualisieren Sie dann den CNAME-Datensatz. Ändern Sie den CNAME-Eintrag so, dass er auf Ihren API-Gateway-Domänennamen anstelle der Staging-URL verweist. Wenn Ihr benutzerdefinierter Domänenname bei einem Drittanbieter registriert ist, wenden Sie sich an Ihren Domänen-Registrar. Wenn Ihr benutzerdefinierter Domänenname bei Route 53 registriert ist, finden Sie weitere Informationen unter Bearbeiten von Datensätzen.
7. Wenn Sie die API innerhalb eines Amazon-VPC-Endpunkts (Amazon Virtual Private Cloud) aufgerufen haben, überprüfen Sie die CNAME- oder A-Datensatzzuordnung für den benutzerdefinierten Domänennamen. Wenn privates DNS aktiviert ist, gibt die API-Anfrage einen 4xx-Fehler zurück. Da die API-Anfrage über den VPC-Endpunkt geleitet und einem CNAME- oder A-Datensatz zugeordnet wird, schlägt die Anfrage fehl.
Ähnliche Informationen
Wie definiere ich einen benutzerdefinierten Domänennamen für meine API in API Gateway.
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren