View a markdown version of this page

Gunakan Gateway-generated sertifikat API untuk otentikasi backend di API Gateway - Amazon API Gateway

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan Gateway-generated sertifikat API untuk otentikasi backend di API Gateway

Anda dapat menggunakan API Gateway untuk menghasilkan sertifikat SSL dan kemudian menggunakan kunci publik di backend untuk memverifikasi bahwa permintaan HTTP ke sistem backend Anda berasal dari API Gateway. Ini memungkinkan backend HTTP Anda untuk mengontrol dan menerima hanya permintaan yang berasal dari Amazon API Gateway, bahkan jika backend dapat diakses publik.

catatan

Beberapa server backend mungkin tidak mendukung otentikasi klien SSL seperti yang dilakukan API Gateway dan dapat mengembalikan kesalahan sertifikat SSL. Untuk daftar server backend yang tidak kompatibel, lihatCatatan penting Amazon API Gateway.

Tip

Untuk menggunakan CA-signed sertifikat Anda sendiri dari ACM alih-alih sertifikat yang Gateway-generated ditandatangani sendiri API, lihat. Gunakan sertifikat ACM Anda sendiri untuk backend bersama TLS di API Gateway

Sertifikat SSL yang dihasilkan oleh API Gateway ditandatangani sendiri, dan hanya kunci publik sertifikat yang terlihat di konsol API Gateway atau melalui API.

Menghasilkan sertifikat klien menggunakan konsol API Gateway

  1. Buka konsol API Gateway di https://console.aws.amazon.com/apigateway/.

  2. Pilih REST atau WebSocket API.

  3. Di panel navigasi utama, pilih Sertifik at klien.

  4. Dari halaman Sertifikat klien, pilih H asilkan sertifikat.

  5. (Opsional) Untuk Deskripsi, masukkan deskripsi.

  6. Pilih Hasilkan sertifikat untuk menghasilkan sertifikat. API Gateway menghasilkan sertifikat baru dan mengembalikan GUID sertifikat baru, bersama dengan kunci PEM-encoded publik.

Anda sekarang siap untuk mengkonfigurasi API untuk menggunakan sertifikat.

Mengkonfigurasi API untuk menggunakan sertifikat SSL

Instruksi ini mengasumsikan bahwa Anda sudah selesaiMenghasilkan sertifikat klien menggunakan konsol API Gateway.

  1. Di konsol API Gateway, buat atau buka RES WebSocket T atau API yang ingin Anda gunakan sertifikat klien. Pastikan bahwa API telah diterapkan ke tahap.

  2. Di panel navigasi utama, pilih Tahapan.

  3. Di bagian Detail Stage, pilih Edit.

  4. Untuk Sertifikat Klien, pilih sertifikat.

  5. Pilih Simpan perubahan.

Setelah sertifikat dipilih untuk API dan disimpan, API Gateway menggunakan sertifikat untuk semua panggilan ke integrasi HTTP di API Anda.

Uji panggilan untuk memverifikasi konfigurasi sertifikat klien

  1. Pilih metode REST API. Pilih tab Tes. Anda mungkin perlu memilih tombol panah kanan untuk menampilkan tab Tes.

  2. Untuk Sertifikat Klien, pilih sertifikat.

  3. Pilih Uji.

API Gateway menyajikan sertifikat SSL yang dipilih untuk backend HTTP untuk mengotentikasi API.

Konfigurasikan server HTTPS backend untuk memverifikasi sertifikat klien

Instruksi ini mengasumsikan bahwa Anda sudah menyelesaikan Menghasilkan sertifikat klien menggunakan konsol API Gateway dan mengunduh salinan sertifikat klien. Anda dapat mengunduh sertifikat klien dengan memanggil clientcertificate:by-id API Gateway REST API atau get-client-certificate dari AWS CLI.

Sebelum mengonfigurasi server HTTPS backend untuk memverifikasi sertifikat SSL klien dari API Gateway, Anda harus memperoleh kunci PEM-encoded pribadi dan sertifikat sisi server yang disediakan oleh otoritas sertifikat tepercaya.

Jika nama domain server adalahmyserver.mydomain.com, nilai CNAME sertifikat server harus myserver.mydomain.com atau*.mydomain.com.

Otoritas sertifikat yang didukung termasuk Let's Encrypt atau salah satu dariOtoritas sertifikat yang didukung API Gateway untuk integrasi proxy HTTP dan HTTP di API Gateway.

Sebagai contoh, misalkan file sertifikat klien adalah apig-cert.pem dan kunci pribadi server dan file sertifikat masing-masing adalah server-key.pem danserver-cert.pem. Untuk Node.js server di backend, Anda dapat mengkonfigurasi server serupa dengan berikut ini:

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);

Untuk aplikasi node express, Anda dapat menggunakan modul client-certificate-auth untuk mengotentikasi permintaan klien dengan sertifikat. PEM-encoded

Untuk server HTTPS lainnya, lihat dokumentasi untuk server.

Putar sertifikat klien yang kedaluwarsa

Sertifikat klien yang dihasilkan oleh API Gateway berlaku selama 365 hari. Anda harus memutar sertifikat sebelum sertifikat klien pada tahap API berakhir untuk menghindari downtime untuk API.

Putar sertifikat klien yang kedaluwarsa menggunakan Konsol Manajemen AWS

Prosedur berikut menunjukkan cara memutar sertifikat klien di konsol untuk API yang digunakan sebelumnya.

  1. Di panel navigasi utama, pilih Sertifik at klien.

  2. Dari panel Sertifikat klien, pilih H asilkan sertifikat.

  3. Buka API yang ingin Anda gunakan sertifikat klien.

  4. Pilih Tah apan di bawah API yang dipilih dan kemudian pilih tahap.

  5. Di bagian Detail Stage, pilih Edit.

  6. Untuk sertifikat Kli en, pilih sertifikat baru.

  7. Untuk menyimpan pengaturan, pilih S impan perubahan.

Putar sertifikat klien yang kedaluwarsa menggunakan AWS CLI

Anda dapat memeriksa tanggal kedaluwarsa sertifikat dengan memanggil klien Certificate:by-id API Gateway REST API atau AWS CLI perintah get-client-certificate dan memeriksa properti ExpirationDate yang dikembalikan. https://docs.aws.amazon.com/apigateway/latest/api/API_ClientCertificate.html#expirationDate

Untuk memutar sertifikat klien, lakukan hal berikut:

  1. Buat sertifikat klien baru dengan memanggil clientcertificate:generate dari API Gateway REST API atau perintah generate-client-certificate. AWS CLI https://docs.aws.amazon.com/cli/latest/reference/apigateway/generate-client-certificate.html Dalam tutorial ini, kita mengasumsikan bahwa ID sertifikat klien baru adalahndiqef.

  2. Perbarui server backend untuk menyertakan sertifikat klien baru. Jangan hapus sertifikat klien yang ada.

    Beberapa server mungkin memerlukan restart untuk menyelesaikan pembaruan. Konsultasikan dokumentasi server untuk melihat apakah Anda harus me-restart server selama pembaruan.

  3. Perbarui tahap API untuk menggunakan sertifikat klien baru dengan memanggil stage:update API Gateway REST API, dengan ID sertifikat klien baru ()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" } ] }

    Anda juga dapat menggunakan perintah update-stage.

    Jika Anda menggunakan WebSocket API, gunakan perintah apigatewayv2 update-stage.

  4. Perbarui server backend untuk menghapus sertifikat lama.

  5. Hapus sertifikat lama dari API Gateway dengan memanggil clientcertificate:delete dari API Gateway REST API, menentukan client CertificateId (a1b2c3) dari sertifikat lama:

    DELETE /clientcertificates/a1b2c3

    Anda juga dapat memanggil perintah delete-client-certificate:

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