

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

# Buat dan konfigurasikan sertifikat SSL untuk otentikasi backend di API Gateway
<a name="getting-started-client-side-ssl-authentication"></a>

 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](api-gateway-known-issues.md) 

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

**Topics**
+ [Buat sertifikat klien menggunakan konsol API Gateway](#generate-client-certificate)
+ [Konfigurasikan API untuk menggunakan sertifikat SSL](#configure-api)
+ [Uji pemanggilan untuk memverifikasi konfigurasi sertifikat klien](#test-invoke)
+ [Konfigurasikan server HTTPS backend untuk memverifikasi sertifikat klien](#certificate-validation)
+ [Putar sertifikat klien yang kedaluwarsa](#certificate-rotation)
+ [Otoritas sertifikat yang didukung API Gateway untuk integrasi proxy HTTP dan HTTP di API Gateway](api-gateway-supported-certificate-authorities-for-http-endpoints.md)

## Buat sertifikat klien menggunakan konsol API Gateway
<a name="generate-client-certificate"></a>

1. Buka konsol API Gateway di [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Pilih REST atau WebSocket API.

1. Di panel navigasi utama, pilih **Sertifikat klien**.

1. Dari halaman **Sertifikat klien**, pilih **Hasilkan sertifikat**.

1.  (Opsional) Untuk **Deskripsi**, masukkan deskripsi. 

1. 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
<a name="configure-api"></a>

Instruksi ini mengasumsikan bahwa Anda sudah selesai[Buat sertifikat klien menggunakan konsol API Gateway](#generate-client-certificate).

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

1. Di panel navigasi utama, pilih **Tahapan**.

1. Di bagian **Detail tahap**, pilih **Edit**.

1. Untuk **sertifikat Klien**, pilih sertifikat.

1. Pilih **Simpan perubahan**.

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
<a name="test-invoke"></a>

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

1. Untuk **sertifikat Klien**, pilih sertifikat. 

1. Pilih **Uji**. 

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

## Konfigurasikan server HTTPS backend untuk memverifikasi sertifikat klien
<a name="certificate-validation"></a>

Instruksi ini mengasumsikan bahwa Anda sudah menyelesaikan [Buat sertifikat klien menggunakan konsol API Gateway](#generate-client-certificate) dan mengunduh salinan sertifikat klien. Anda dapat mengunduh sertifikat klien dengan memanggil [https://docs.aws.amazon.com/apigateway/latest/api/API_GetClientCertificate.html](https://docs.aws.amazon.com/apigateway/latest/api/API_GetClientCertificate.html)API Gateway REST API atau [https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-client-certificate.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-client-certificate.html)dari 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 server`myserver.mydomain.com`, nilai CNAME sertifikat server harus `myserver.mydomain.com` atau`*.mydomain.com`. 

Otoritas sertifikat yang didukung termasuk [Let's Encrypt](https://letsencrypt.org/) atau salah satu dari. [Otoritas sertifikat yang didukung API Gateway untuk integrasi proxy HTTP dan HTTP di API Gateway](api-gateway-supported-certificate-authorities-for-http-endpoints.md) 

Sebagai contoh, misalkan file sertifikat klien adalah `apig-cert.pem` dan kunci pribadi server dan file sertifikat adalah `server-key.pem` dan`server-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](http://expressjs.com/), Anda dapat menggunakan [client-certificate-auth](https://www.npmjs.com/package/client-certificate-auth)modul untuk mengautentikasi permintaan klien dengan sertifikat yang dikodekan PEM. 

Untuk server HTTPS lainnya, lihat dokumentasi untuk server.

## Putar sertifikat klien yang kedaluwarsa
<a name="certificate-rotation"></a>

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.

### Putar sertifikat klien yang kedaluwarsa menggunakan Konsol Manajemen AWS
<a name="certification-rotation-console"></a>

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

1. Di panel navigasi utama, pilih **Sertifikat klien**.

1. Dari panel **Sertifikat klien**, pilih **Menghasilkan sertifikat**.

1.  Buka API yang ingin Anda gunakan sertifikat klien. 

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

1. Di bagian **Detail tahap**, pilih **Edit**.

1. Untuk **sertifikat Klien**, pilih sertifikat baru.

1. Untuk menyimpan pengaturan, pilih **Simpan perubahan**.

### Putar sertifikat klien yang kedaluwarsa menggunakan AWS CLI
<a name="certificate-rotation-cli"></a>

 [Anda dapat memeriksa tanggal kedaluwarsa sertifikat dengan memanggil [clientCertificate:by-ID](https://docs.aws.amazon.com/apigateway/latest/api/API_GetClientCertificate.html) API Gateway REST API AWS CLI atau perintah dan memeriksa properti ExpirationDate [get-client-certificate](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-client-certificate.html)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](https://docs.aws.amazon.com/apigateway/latest/api/API_GenerateClientCertificate.html) API Gateway REST API atau perintah dari. AWS CLI [generate-client-certificate](https://docs.aws.amazon.com/cli/latest/reference/apigateway/generate-client-certificate.html) Dalam tutorial ini, kita berasumsi bahwa ID sertifikat klien baru adalah`ndiqef`.

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

1.  Perbarui tahap API untuk menggunakan sertifikat klien baru dengan memanggil [stage:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) 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](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html).

   Jika Anda menggunakan WebSocket API, gunakan perintah `apigatewayv2` [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-stage.html).

1.  Perbarui server backend untuk menghapus sertifikat lama.

1.  Hapus sertifikat lama dari API Gateway dengan memanggil [clientcertificate:delete](https://docs.aws.amazon.com/apigateway/latest/api/API_DeleteClientCertificate.html) API Gateway REST API, dengan menentukan clientCertificateId () `a1b2c3` sertifikat lama:

   ```
   DELETE /clientcertificates/a1b2c3 
   ```

   Anda juga dapat memanggil [delete-client-certificate](https://docs.aws.amazon.com/cli/latest/reference/apigateway/delete-client-certificate.html)perintah:

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