Perché è stato restituito il certificato errato, quando ho richiamato il mio nome di dominio personalizzato di Gateway Amazon API?

Ultimo aggiornamento: 19/01/2023

Ho provato a fare una richiesta API al mio nome di dominio personalizzato di Gateway Amazon API, ma è stato restituito il certificato errato. Come posso risolvere il problema?

Breve descrizione

È possibile creare due tipi di nomi di dominio personalizzati per le API di Gateway Amazon API: regionali o (solo per le REST API) ottimizzati per l'edge.

Per i nomi di dominio personalizzati regionali, Gateway Amazon API crea un nome di dominio regionale. È necessario configurare un record DNS per mappare il nome di dominio personalizzato al nome host simile a "d-example.execute-api.<region>.amazonaws.com".

Per nomi di dominio personalizzati ottimizzati per l'edge, Gateway Amazon API crea una distribuzione Amazon CloudFront. È necessario configurare un record DNS per mappare il nome di dominio personalizzato al nome di distribuzione CloudFront simile a "distribution-id.cloudfront.net".

Nello scenario seguente, il certificato SSL *.example.com o www.example.com è stato caricato nel nome di dominio personalizzato www.example.com. Una richiesta API a www.example.com restituisce un errore simile al seguente:

Da un browser:

"This server could not prove that it is www.example.com; its security certificate is from *.execute-api.us-east-1.amazonaws.com. This may be caused by a misconfiguration or an attacker intercepting your connection." (Questo server non è stato in grado di provare che si tratta di www.example.com; il suo certificato di sicurezza proviene da *.execute-api.us-east-1.amazonaws.com. Ciò potrebbe essere causato da una configurazione errata o da un utente malintenzionato che intercetta la tua connessione).

Da curl:

"curl: (60) SSL: no alternative certificate subject name matches target hostname 'www.example.com'. curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it.To learn more about this situation and how to fix it, please visit the web page mentioned above." (curl: (60) SSL: nessun nome soggetto del certificato alternativo corrisponde al nome host di destinazione 'www.example.com'. curl non è riuscito a verificare la legittimità del server e pertanto non è stato in grado di stabilire una connessione sicura ad esso. Per saperne di più su questa situazione e su come risolverla, visita la pagina Web sopra menzionata).

Risoluzione

Assicurati che il record CNAME o A del nome di dominio personalizzato punti al nome di dominio di Gateway Amazon API e non all'URL della fase di Gateway Amazon API.

1.    Esegui il seguente comando openssl per verificare che il certificato SSL venga restituito dal dominio personalizzato:

openssl s_client -connect www.example.com:443 -servername www.example.com

Output di esempio:

subject=/CN=*.execute-api.us-east-1.amazonaws.com

2.    Esegui il seguente comando dig sul dominio personalizzato:

dig www.example.com

L'output del comando dig ha un record CNAME che punta all'URL della fase di Gateway Amazon API o un record A che punta all'indirizzo IP.

3.    Controlla il record DNS per il dominio www.example.com con il tuo registrar di domini per determinare dove punta. Se il tuo dominio è registrato con Amazon Route 53, consulta la pagina Verifica delle risposte DNS da Route 53.

4.    Per confermare che i record DNS siano mappati correttamente, apri la console Gateway Amazon API. Nel pannello di navigazione, scegli Custom domain names (Nomi di dominio personalizzati), quindi scegli il tuo dominio personalizzato.

5.    Da Domain details (Dettagli del dominio), scegli Configuration (Configurazione) e poi controlla API Gateway domain name (Nome di dominio di Gateway Amazon API). Il nome di dominio personalizzato deve essere mappato al nome di dominio di Gateway Amazon API. I nomi di dominio personalizzati regionali utilizzano un prefisso simile a "d-example.execute-api.<region>.amazonaws.com". I nomi di dominio personalizzati ottimizzati per l'edge utilizzano un prefisso simile a "distribution-id.cloudfront.net".

6.    Se il record CNAME punta all'URL della fase di Gateway Amazon API anziché al nome di dominio di Gateway Amazon API, aggiorna il record CNAME. Modifica il record CNAME in modo che punti al nome del tuo dominio di Gateway Amazon API anziché all'URL della fase. Se il tuo nome di dominio personalizzato è registrato presso una terza parte, contatta il tuo registrar di domini. Se il tuo nome di dominio personalizzato è registrato con Route 53, consulta Modifica dei record.

7.    Se hai richiamato l'API all'interno di un endpoint Amazon Virtual Private Cloud (Amazon VPC), controlla la mappatura dei record CNAME o A per il nome di dominio personalizzato. Se il DNS privato è attivato, la richiesta API restituisce un errore 4xx. Poiché la richiesta API viene indirizzata attraverso l'endpoint VPC e mappata a un record CNAME o A, la richiesta ha esito negativo.