Come posso utilizzare un certificato client emesso da terze parti durante la configurazione dell'autenticazione TLS reciproca per le API Gateway API?
Ultimo aggiornamento: 16/12/2022
Voglio utilizzare un certificato client emesso da terze parti per la configurazione dell'autenticazione reciproca Transport Layer Security (TLS) per le API Gateway Amazon API.
Risoluzione
Per utilizzare un certificato client firmato da terze parti per Gateway API con autenticazione TLS, completa i passaggi seguenti:
- Crea un truststore per utilizzare il certificato firmato da terze parti.
- Crea un nome di dominio personalizzato e una mappatura delle API per la tua API Gateway API.
- Crea un record DNS per mappare il nome di dominio personalizzato su Gateway API.
- Disabilita l'endpoint predefinito.
- Testa l'API.
Nota:
- Se ricevi messaggi di errore durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), assicurati di star utilizzando la versione più recente di AWS CLI.
- Il TLS reciproco non è supportato per le API private.
Crea un truststore per utilizzare il certificato firmato da terze parti
1. Genera una CA root. La CA root viene utilizzata 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 per il 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 precedentemente.
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 truststore del bucket Amazon S3.
7. (Facoltativo) Crea un file a catena di certificati dal certificato CA intermedio alla CA root.
Cat Intermediate.pem ca.pem >ca-chain.pem.
Per ulteriori informazioni, consulta Configurazione del truststore.
Crea un nome di dominio personalizzato e una mappatura delle API per la tua API Gateway API
Nota: con API Gateway sono visibili solo i certificati con una chiave di 2.048 bit. Le dimensioni del certificato non possono superare i 2.048 bit.
1. Apri la console Gateway API, quindi scegli Custom domain names (nomi di dominio personalizzato).
2. Per i Nomi di dominio, inserisci il tuo nome di dominio, quindi seleziona Create (crea).
3. Per il Nome di dominio, inserisci il tuo nome di dominio.
4. Per la versione TLS minima, seleziona TLS 1.2.
5. Abilita l'autenticazione TLS reciproca.
6. Per l'URI Truststore, inserisci l'URI Amazon S3 che hai creato precedentemente.
7. Per la configurazione degli endpoint, seleziona Regional (Regionale).
8. Per Tipo di certificato, scegli il tipo di certificato, quindi seleziona Create domain name (crea nome di dominio).
9. Scegli il tuo nome di dominio personalizzato, quindi seleziona Configure API mappings (configura mappature API).
10. Seleziona Add new mapping (Aggiungi nuova mappatura).
11. Scegli l'API, la Fase e il Percorso per la mappatura, quindi seleziona Save (salva).
Per ulteriori informazioni, consulta Come posso configurare un nome di dominio personalizzato per la mia API Gateway API?
Crea un record DNS per mappare il nome di dominio personalizzato su Gateway API
Crea un record DNS per indirizzare il nome di dominio personalizzato al nome di dominio regionale di Gateway API. 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 di Route 53 per instradare il traffico a un endpoint API Gateway.
Disabilita l'endpoint predefinito
Di default i client possono richiamare le API utilizzando l'endpoint execute-api generato da Gateway API 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 Disabilitazione dell'endpoint predefinito per un'API HTTP.
Per ulteriori informazioni consulta Disabilitazione dell'endpoint predefinito per una REST API.
Testa 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 perché la richiesta vada a buon fine.
Informazioni correlate
Questo articolo è stato utile?
Hai bisogno di supporto tecnico o per la fatturazione?