Menghasilkan dan mengkonfigurasi sertifikat SSL untuk otentikasi backend - Amazon API Gateway

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

Menghasilkan dan mengkonfigurasi sertifikat SSL untuk otentikasi backend

Anda dapat menggunakan API Gateway untuk menghasilkan sertifikat SSL dan kemudian menggunakan kunci publiknya di backend untuk memverifikasi bahwa permintaan HTTP ke sistem backend Anda berasal dari API Gateway. Hal ini memungkinkan backend HTTP Anda untuk mengontrol dan hanya menerima 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, lihat. Catatan penting Amazon 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.

Buat sertifikat klien menggunakan konsol API Gateway

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

  2. Pilih REST API.

  3. Di panel navigasi utama, pilih Sertifikat klien.

  4. Dari halaman Sertifikat klien, pilih Hasilkan 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 publik yang dikodekan PEM.

Anda sekarang siap untuk mengkonfigurasi API untuk menggunakan sertifikat.

Konfigurasikan API untuk menggunakan sertifikat SSL

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

  1. Di konsol API Gateway, buat atau buka API yang ingin Anda gunakan sertifikat kliennya. Pastikan bahwa API telah diterapkan ke sebuah panggung.

  2. Di panel navigasi utama, pilih Tahapan.

  3. Di bagian Detail tahap, pilih Edit.

  4. Untuk sertifikat Klien, pilih sertifikat.

  5. Pilih Simpan perubahan.

    Jika API telah digunakan sebelumnya di konsol API Gateway, Anda harus menerapkannya kembali agar perubahan diterapkan. Untuk informasi selengkapnya, lihat Menerapkan ulang REST API ke panggung.

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

Uji pemanggilan untuk memverifikasi konfigurasi sertifikat klien

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

  2. Untuk sertifikat Klien, pilih sertifikat.

  3. Pilih Uji.

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

Konfigurasikan server HTTPS backend untuk memverifikasi sertifikat klien

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

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

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

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

Sebagai contoh, misalkan file sertifikat klien adalah apig-cert.pem dan kunci pribadi server dan file sertifikat adalah server-key.pem danserver-cert.pem, masing-masing. Untuk server Node.js di backend, Anda dapat mengonfigurasi server yang mirip dengan yang 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 client-certificate-authmodul untuk mengautentikasi permintaan klien dengan sertifikat yang dikodekan PEM.

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 kedaluwarsa untuk menghindari waktu henti API. Anda dapat memeriksa tanggal kedaluwarsa sertifikat dengan memanggil clientCertificate:by-ID API Gateway REST API AWS CLI atau perintah dan memeriksa properti ExpirationDate get-client-certificateyang dikembalikan.

Untuk memutar sertifikat klien, lakukan hal berikut:

  1. Buat sertifikat klien baru dengan memanggil clientcertificate:generate API Gateway REST API atau perintah dari. AWS CLI generate-client-certificate Dalam tutorial ini, kita berasumsi bahwa ID sertifikat klien baru adalahndiqef.

  2. Perbarui server backend untuk menyertakan sertifikat klien baru. Jangan menghapus 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" } ] }

    atau dengan memanggil perintah CLI dari tahap pembaruan.

  4. Perbarui server backend untuk menghapus sertifikat lama.

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

    DELETE /clientcertificates/a1b2c3

    atau dengan memanggil perintah CLI dari: delete-client-certificate

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

Untuk memutar sertifikat klien di konsol untuk API yang digunakan sebelumnya, lakukan hal berikut:

  1. Di panel navigasi utama, pilih Sertifikat klien.

  2. Dari panel Sertifikat klien, pilih Menghasilkan sertifikat.

  3. Buka API yang ingin Anda gunakan sertifikat klien.

  4. Pilih Tahapan di bawah API yang dipilih dan kemudian pilih panggung.

  5. Di bagian Detail tahap, pilih Edit.

  6. Untuk sertifikat Klien, pilih sertifikat baru.

  7. Untuk menyimpan pengaturan, pilih Simpan perubahan.

    Anda perlu menerapkan ulang API agar perubahan diterapkan. Untuk informasi selengkapnya, lihat Menerapkan ulang REST API ke panggung.