Come faccio a utilizzare un certificato client emesso da terze parti durante la configurazione dell'autenticazione TLS reciproca per le API Gateway API?

4 minuti di lettura
0

Voglio utilizzare un certificato client emesso da terze party per configurare l'autenticazione reciproca Transport Layer Security (TLS) per le API Gateway Amazon API.

Risoluzione

Per utilizzare un certificato client firmato da terze parti per API Gateway con autenticazione TLS, segui questi passaggi:

  1. Crea un truststore per utilizzare il certificato firmato da terze parti.
  2. Crea un nome di dominio personalizzato e una mappatura delle API per la tua API Gateway API.
  3. Crea un record DNS per mappare il nome di dominio personalizzato su API Gateway.
  4. Disabilita l'endpoint predefinito.
  5. Prova l'API.

Nota:

Crea un truststore per utilizzare il certificato firmato da terze parti

1.    Genera un RootCA. Il RootCA viene utilizzato per emettere il certificato client.

openssl genrsa -out RootCA.key 4096  

openssl req -new -x509 -days 3650 -key RootCA.key -out RootCA.pem

2.    Compila i campi obbligatori e inserisci il nome del dominio.

3.    Crea una chiave privata del certificato client, una richiesta di firma del certificato (CSR) e un certificato client.

openssl genrsa -out my_client.key 2048  

openssl req -new -key my_client.key -out my_client.csr

4.    Firma il certificato client utilizzando la CA che hai creato in precedenza.

openssl x509 -req -in my_client.csr -CA RootCA.pem -CAkey RootCA.key -set_serial 01 -out my_client.pem -days 3650 -sha256

5.    Crea un bucket Amazon Simple Storage Service (Amazon S3) per archiviare il file truststore.pem.

6.    Carica il file RootCA.pem nel bucket truststore di Amazon S3.

7.    (Facoltativo) Crea un file di catena di certificati dal certificato CA intermedio a Root CA.

Cat Intermediate.pem ca.pem >ca-chain.pem.

Per ulteriori informazioni, consulta Configura il tuo truststore.

Crea un nome di dominio personalizzato e una mappatura delle API per la tua API Gateway API

Nota: solo i certificati con una dimensione della chiave di 2048 bit sono visibili con API Gateway. La dimensione del certificato non può superare i 2048 bit.

1.    Apri la console API Gateway, quindi scegli Nomi di dominio personalizzati.

2.    Per Nomi di dominio, inserisci il tuo nome di dominio, quindi scegli Crea.

3.    In Nome di dominio, inserisci il tuo nome di dominio.

4.    Per la versione minima TLS, scegli TLS 1.2.

5.    Abilita l'autenticazione TLS reciproca.

6.    Per il Truststore URI, inserisci l'URI Amazon S3 che hai creato in precedenza.

7.    Per la configurazione degli endpoint, scegli Regionale.

8.    Per Tipo di certificato, scegli il tipo di certificato, quindi scegli Crea nome di dominio.

9.    Scegli il tuo nome di dominio personalizzato, quindi scegli Configura mappature API.

10.    Scegli Aggiungi nuova mappatura.

11.    Scegli l'API, la Fase e il Percorso per la mappatura, quindi scegli Salva.

Per ulteriori informazioni, vedi Come faccio a configurare un nome di dominio personalizzato per la mia API Gateway API?

Crea un record DNS per mappare il nome di dominio personalizzato su API Gateway

Crea un record DNS per indirizzare il nome di dominio personalizzato al nome di dominio regionale API Gateway. Ciò consente al traffico associato al nome di dominio personalizzato di essere indirizzato al nome host regionale dell'API. Il record DNS può essere di tipo CNAME o "Alias A".

Per ulteriori informazioni, consulta Configurazione della Route 53 per indirizzare il traffico verso un endpoint API Gateway.

Disabilita l'endpoint predefinito

Per impostazione predefinita, i client possono richiamare le API utilizzando l'endpoint execute-api generato da API Gateway per la tua API. Disabilita l'endpoint execute-api predefinito in modo che i client possano accedere alla tua API utilizzando solo un nome di dominio personalizzato.

Per le API HTTP, vedi Disabilitare l'endpoint predefinito per un'API HTTP.

Per le REST API, vedi Disabilitazione dell'endpoint predefinito per una REST API.

Prova l'API

Testa l'API con i parametri --key e --cert per inviare il certificato client come parte della richiesta.

$ curl -v https://{YourCustomDomainName}/{resource} --key my_client.key --cert my_client.pem

Nota: la chiave privata my_client.key e il certificato client my_client.pem devono essere inclusi affinché la richiesta abbia successo.

Informazioni correlate

Come faccio a risolvere i problemi relativi alla catena di certificati e ai certificati autofirmati per Gateway Amazon API con domini personalizzati e TLS reciproco abilitato?

Presentazione dell'autenticazione TLS reciproca per Gateway Amazon API

Come faccio a risolvere gli errori HTTP 403 Forbidden da un nome di dominio personalizzato API Gateway che richiede TLS reciproco?