Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Usa un Gateway-generated certificato API per l'autenticazione backend in API Gateway
Puoi usare API Gateway per generare un certificato SSL e quindi usare la relativa chiave pubblica nel back-end per verificare che le richieste HTTP al sistema back-end provengano da API Gateway. Ciò consente al back-end HTTP di controllare e accettare solo le richieste che provengono da Amazon API Gateway, anche se il back-end è accessibile pubblicamente.
Nota
Alcuni server back-end potrebbero non supportare l'autenticazione client SSL come fa API Gateway e potrebbero restituire un errore di certificato SSL. Per un elenco di server back-end non compatibili, consulta Note importanti Amazon API Gateway.
Suggerimento
Per utilizzare il tuo CA-signed certificato ACM anziché un certificato Gateway-generated autofirmato API, consulta. Usa il tuo certificato ACM per il TLS reciproco di backend in API Gateway
I certificati SSL generati da API Gateway sono autofirmati e solo la chiave pubblica di un certificato è visibile nella console API Gateway o tramite le API.
Argomenti
Generazione di un certificato client tramite la console API Gateway
Apri la console API Gateway all'indirizzo. https://console.aws.amazon.com/apigateway/
Scegli un REST o WebSocket un'API.
Nel riquadro di navigazione principale scegli Certificati client.
Nel riquadro Certificati client scegli Genera certificato client.
-
(Facoltativo) In Descrizione, immetti una descrizione.
-
Scegli Genera certificato per generare il certificato. API Gateway genera un nuovo certificato e restituisce il nuovo GUID del certificato, insieme alla chiave PEM-encoded pubblica.
A questo punto, puoi configurare un'API per usare il certificato.
Configurazione di un'API per usare i certificati SSL
Queste istruzioni presuppongono che la procedura in sia già stata completat Generazione di un certificato client tramite la console API Gateway.
-
Nella console API Gateway, crea o apri un WebSocket REST o un'API per cui desideri utilizzare il certificato client. Assicurati che l'API sia stata distribuita in una fase.
Nel riquadro di navigazione principale scegli Fasi.
Nella sezione Dettagli fase scegli Modifica.
Per Certificato client seleziona un certificato.
-
Scegli Save changes (Salva modifiche).
Dopo aver selezionato un certificato per l'API e avere eseguito il salvataggio, API Gateway usa il certificato per tutte le chiamate alle integrazioni HTTP nell'API.
Test della chiamata per verificare la configurazione del certificato del client
-
Scegli un metodo REST API. Seleziona la scheda Test. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda Test.
-
Per Certificato client seleziona un certificato.
Scegli Test (Esegui test).
API Gateway presenta il certificato SSL scelto per il back-end HTTP per l'autenticazione dell'API.
Configurazione di un server di back-end HTTPS per verificare il certificato del client
Queste istruzioni presuppongono che Generazione di un certificato client tramite la console API Gateway sia già stata completata e che sia stata scaricata una copia del certificato client. Per scaricare un certificato client, chiama clientcertificate:by-id dell'API REST di API Gateway o get-client-certificate della AWS CLI.
Prima di configurare un server HTTPS di backend per verificare il certificato SSL client di API Gateway, devi aver ottenuto la chiave PEM-encoded privata e un certificato lato server forniti da un'autorità di certificazione affidabile.
Se il nome di dominio del server è myserver.mydomain.com, il valore CNAME del certificato del server deve essere myserver.mydomain.com o *.mydomain.com.
Tra le autorità di certificazione supportate figurano Let's Encrypt
Ad esempio, supponiamo che il file del certificato client sia apig-cert.pem e che la chiave privata del server e i file di certificato siano, rispettivamente, server-key.pem e server-cert.pem. Per un Node.js server nel backend, puoi configurare il server in modo simile a quanto segue:
var fs = require('fs'); var https = require('https'); var options = { key: fs.readFileSync('server-key.pem'), cert: fs.readFileSync('server-cert.pem'), ca: fs.readFileSync('apig-cert.pem'), requestCert: true, rejectUnauthorized: true }; https.createServer(options, function (req, res) { res.writeHead(200); res.end("hello world\n"); }).listen(443);
Per un'app
Per gli altri server HTTPS, consulta la documentazione per il server.
Rotazione di un certificato client in scadenza
Il certificato client generato da API Gateway è valido per 365 giorni. È necessario ruotare il certificato prima che un certificato client in una fase API scada per evitare tempi di inattività per l'API.
Ruota un certificato client in scadenza utilizzando Console di gestione AWS
La seguente procedura mostra come ruotare un certificato client nella console per un’API implementata in precedenza.
Nel riquadro di navigazione principale scegli Certificati client.
Nel riquadro Certificati client scegli Genera certificato.
-
Aprire l'API per cui si desidera usare il certificato client.
Scegliere Stages (Fasi) per l'API selezionata e quindi scegliere una fase.
Nella sezione Dettagli fase scegli Modifica.
Per Certificato client seleziona il nuovo certificato.
-
Per salvare le impostazioni, scegli Salva modifiche.
Ruota un certificato client in scadenza utilizzando AWS CLI
È possibile verificare la data di scadenza del certificato chiamando il client dell'API REST API Gateway o il AWS CLI comando Certificate:by-id di get-client-certificate e controllando la proprietà expirationDate restituita. https://docs.aws.amazon.com/apigateway/latest/api/API_ClientCertificate.html#expirationDate
Per ruotare un certificato client, procedere come indicato di seguito:
-
Genera un nuovo certificato client chiamando clientcertificate:generate dell'API REST di API Gateway o il comando generate-client-certificate della AWS CLI . In questo tutorial si presuppone che l'ID del nuovo certificato client sia
ndiqef. -
Aggiorna il server di back-end per includere il nuovo certificato client. Non rimuovere il certificato client esistente.
Alcuni server potrebbero richiedere un riavvio per completare l'aggiornamento. Per ulteriori informazioni, consulta la documentazione del server per vedere se è necessario riavviare il server durante l'aggiornamento.
-
Aggiornare la fase API per utilizzare il nuovo certificato client chiamando stage:update dell'API REST di API Gateway, con il nuovo ID del certificato client (
ndiqef):PATCH /restapis/{restapi-id}/stages/stage1 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20170603T200400Z Authorization: AWS4-HMAC-SHA256 Credential=... { "patchOperations" : [ { "op" : "replace", "path" : "/clientCertificateId", "value" : "ndiqef" } ] }È anche possibile utilizzare il comando update-stage.
Se stai usando un'API, usa il comando update-stage. WebSocket
apigatewayv2https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-stage.html -
Aggiorna il server di back-end per eliminare il vecchio certificato.
-
Elimina il vecchio certificato da API Gateway chiamando clientcertificate:delete dell'API REST di API Gateway, specificando il client () del vecchio certificato: CertificateId
a1b2c3DELETE /clientcertificates/a1b2c3È anche possibile chiamare il comando delete-client-certificate:
aws apigateway delete-client-certificate --client-certificate-id a1b2c3