Buat dan konfigurasikan SSL sertifikat untuk otentikasi backend di Gateway API - APIGerbang Amazon

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

Buat dan konfigurasikan SSL sertifikat untuk otentikasi backend di Gateway API

Anda dapat menggunakan API Gateway untuk menghasilkan SSL sertifikat dan kemudian menggunakan kunci publiknya di backend untuk memverifikasi bahwa HTTP permintaan ke sistem backend Anda berasal dari Gateway. API Ini memungkinkan HTTP backend 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 SSL klien seperti yang dilakukan API Gateway dan dapat mengembalikan kesalahan SSL sertifikat. Untuk daftar server backend yang tidak kompatibel, lihat. Catatan penting Amazon API Gateway

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

Menghasilkan sertifikat klien menggunakan konsol API Gateway

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

  2. Pilih a RESTAPI.

  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. APIGateway menghasilkan sertifikat baru dan mengembalikan sertifikat baruGUID, bersama dengan kunci publik PEM -encoded.

Anda sekarang siap untuk mengkonfigurasi API untuk menggunakan sertifikat.

APIKonfigurasikan SSL sertifikat untuk menggunakan

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

  1. Di konsol API Gateway, buat atau buka yang API ingin Anda gunakan sertifikat klien. Pastikan bahwa API telah dikerahkan ke 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 Buat penerapan untuk REST API in Gateway API.

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

Uji pemanggilan untuk memverifikasi konfigurasi sertifikat klien

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

  2. Untuk sertifikat Klien, pilih sertifikat.

  3. Pilih Uji.

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

Konfigurasikan HTTPS server 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 menelepon clientcertificate:by-idAPIGateway REST API atau get-client-certificatedari AWS CLI.

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

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

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

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 PEM -encoded.

Untuk HTTPS server lain, 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 API tahap kedaluwarsa untuk menghindari downtime. API Anda dapat memeriksa tanggal kedaluwarsa sertifikat dengan memanggil:by-id clientCertificatedari Gateway API atau perintah dan memeriksa properti REST API yang dikembalikan AWS CLI . get-client-certificateexpirationDate

Untuk memutar sertifikat klien, lakukan hal berikut:

  1. Hasilkan sertifikat klien baru dengan memanggil clientcertificate:generate dari 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 API tahapan untuk menggunakan sertifikat klien baru dengan memanggil stage:update API Gateway RESTAPI, 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 CLI perintah update-stage.

  4. Perbarui server backend untuk menghapus sertifikat lama.

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

    DELETE /clientcertificates/a1b2c3

    atau dengan memanggil CLI perintah delete-client-certificate:

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

Untuk memutar sertifikat klien di konsol untuk digunakan sebelumnyaAPI, 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 yang dipilih API 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 Buat penerapan untuk REST API in Gateway API.