Genera e configura un SSL certificato per l'autenticazione backend in API Gateway - Amazon API Gateway

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à.

Genera e configura un SSL certificato per l'autenticazione backend in API Gateway

È possibile utilizzare API Gateway per generare un SSL certificato e quindi utilizzare la relativa chiave pubblica nel backend per verificare che HTTP le richieste al sistema di backend provengano da Gateway. API Ciò consente al HTTP backend di controllare e accettare solo le richieste che provengono da Amazon API Gateway, anche se il backend è accessibile pubblicamente.

Nota

Alcuni server di backend potrebbero non supportare l'autenticazione SSL client come fa API Gateway e potrebbero restituire un SSL errore di certificato. Per un elenco di server back-end non compatibili, consulta Note importanti su Amazon API Gateway.

I SSL certificati generati da API Gateway sono autofirmati e solo la chiave pubblica di un certificato è visibile nella console API Gateway o tramite. APIs

Genera un certificato client utilizzando la console API Gateway

  1. Apri la console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway/.

  2. Scegli un RESTAPI.

  3. Nel riquadro di navigazione principale scegli Certificati client.

  4. Nel riquadro Certificati client scegli Genera certificato client.

  5. (Facoltativo) In Description (Descrizione), immettere una descrizione.

  6. Scegli Genera certificato per generare il certificato. APIGateway genera un nuovo certificato e lo restituisceGUID, insieme alla chiave pubblica con PEM codifica.

Ora sei pronto per configurare e API utilizzare il certificato.

Configura e API usa SSL i certificati

Queste istruzioni presuppongono che la procedura in sia già stata completat Genera un certificato client utilizzando la console API Gateway.

  1. Nella console API Gateway, crea o apri un certificato client API per il quale desideri utilizzare il certificato client. Assicurati che sia API stato distribuito in una fase.

  2. Nel riquadro di navigazione principale scegli Fasi.

  3. Nella sezione Dettagli fase scegli Modifica.

  4. Per Certificato client seleziona un certificato.

  5. Seleziona Salvataggio delle modifiche.

    Se API è stato distribuito in precedenza nella console API Gateway, sarà necessario ridistribuirlo affinché le modifiche abbiano effetto. Per ulteriori informazioni, consulta Creare una distribuzione per un API gateway REST API in.

Dopo aver selezionato API e salvato un certificato, API Gateway utilizza il certificato per tutte le chiamate alle HTTP integrazioni nel tuo. API

Test della chiamata per verificare la configurazione del certificato del client

  1. Scegli un API metodo. Seleziona la scheda Test. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda Test.

  2. Per Certificato client seleziona un certificato.

  3. Scegli Test (Esegui test).

APIGateway presenta il SSL certificato scelto per il HTTP backend per autenticare il. API

Configura un HTTPS server di backend per verificare il certificato del client

Queste istruzioni presuppongono che Genera un certificato client utilizzando la console API Gateway sia già stata completata e che sia stata scaricata una copia del certificato client. È possibile scaricare un certificato client clientcertificate:by-idchiamando il API Gateway REST API o get-client-certificateil. AWS CLI

Prima di configurare un HTTPS server di backend per verificare il SSL certificato client di API Gateway, è necessario aver ottenuto la chiave privata PEM con codifica e un certificato lato server fornito da un'autorità di certificazione attendibile.

Se il nome di dominio del server èmyserver.mydomain.com, il valore del certificato del server deve essere o. CNAME myserver.mydomain.com *.mydomain.com

Tra le autorità di certificazione supportate figurano Let's Encrypt o una delle APIAutorità di certificazione supportate dal gateway HTTP e integrazioni HTTP proxy in Gateway API.

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 server Node.js nel back-end, è possibile configurare il server in modo simile al seguente:

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 node-express, puoi utilizzare i client-certificate-authmoduli per autenticare le richieste dei client con certificati PEM -encoded.

Per altri HTTPS server, consulta la documentazione relativa al server.

Rotazione di un certificato client in scadenza

Il certificato client generato da API Gateway è valido per 365 giorni. È necessario ruotare il certificato prima della scadenza di un certificato client su uno API stage per evitare tempi di inattività per. API È possibile verificare la data di scadenza del certificato chiamando:by-id clientCertificate del Gateway API oppure eseguendo il comando AWS CLI e ispezionando la proprietà REST API restituita. get-client-certificateexpirationDate

Per ruotare un certificato client, procedere come indicato di seguito:

  1. Genera un nuovo certificato client chiamando clientcertificate:generate del Gateway o il comando di. API REST API AWS CLI generate-client-certificate In questo tutorial si presuppone che l'ID del nuovo certificato client sia ndiqef.

  2. 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.

  3. Aggiorna lo API stage per utilizzare il nuovo certificato client chiamando stage:update del API Gateway RESTAPI, con il nuovo client certificate ID (): 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" } ] }

    o chiamando il CLI comando di update-stage.

  4. Aggiorna il server di back-end per eliminare il vecchio certificato.

  5. Elimina il vecchio certificato da API Gateway chiamando il clientcertificate:delete del API Gateway RESTAPI, specificando il () del clientCertificateId vecchio certificato: a1b2c3

    DELETE /clientcertificates/a1b2c3

    o chiamando il comando di: CLI delete-client-certificate

    aws apigateway delete-client-certificate --client-certificate-id a1b2c3

Per ruotare un certificato client nella console per uno distribuito in precedenzaAPI, procedi come segue:

  1. Nel riquadro di navigazione principale scegli Certificati client.

  2. Nel riquadro Certificati client scegli Genera certificato.

  3. Apri il certificato client API per cui desideri utilizzare il certificato client.

  4. Scegli Fasi sotto quella selezionataAPI, quindi scegli una fase.

  5. Nella sezione Dettagli fase scegli Modifica.

  6. Per Certificato client seleziona il nuovo certificato.

  7. Per salvare le impostazioni, scegli Salva modifiche.

    È necessario ridistribuire il API affinché le modifiche abbiano effetto. Per ulteriori informazioni, consulta Creare una distribuzione per un API gateway REST API in.