Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat
Apigee Edge dokumentasi.
Bagian ini menunjukkan cara mengonfigurasi TLS untuk traffic dari proxy ke target.
Tentang menetapkan opsi TLS di endpoint target atau server target
Target dapat direpresentasikan oleh objek XML seperti di bawah ini:
<HTTPTargetConnection> <Properties/> <URL>https:myTargetAddress</URL> <SSLInfo> <Enabled>true</Enabled> <Enforce>true</Enforce> <ClientAuthEnabled>true</ClientAuthEnabled> <KeyStore>ref://myKeystoreRef</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> <TrustStore>ref://myTruststoreRef</TrustStore> <IgnoreValidationErrors>false</IgnoreValidationErrors> <Protocols>myProtocols</Protocols> <Ciphers>myCipher</Ciphers> </SSLInfo> </HTTPTargetConnection>
Area konfigurasi endpoint target yang Anda ubah untuk mengonfigurasi TLS ditentukan oleh tag
<SSLInfo>. Anda menggunakan tag <SSLInfo> yang sama untuk mengonfigurasi
endpoint target atau server target.
Untuk mengetahui informasi tentang elemen turunan <SSLInfo>, lihat
Konfigurasi TargetEndpoint TLS/SSL.
Tabel berikut menjelaskan elemen konfigurasi TLS yang digunakan oleh
<SSLInfo> tag:
| Elemen | Deskripsi |
|---|---|
<Enabled> |
Blok <SSLInfo> dapat digunakan untuk TLS/SSL satu arah dan dua arah.
Jika ditetapkan ke Nilai default |
<Enforce> |
Menerapkan SSL ketat antara Apigee dan backend target. Jika ditetapkan ke Jika tidak ditetapkan, atau ditetapkan ke |
<ClientAuthEnabled> |
Mengaktifkan TLS dua arah (juga dikenal sebagai mutual TLS atau mTLS) antara Apigee dan klien API, atau antara Apigee dan backend target. Mengaktifkan TLS dua arah biasanya mengharuskan Anda menyiapkan truststore di Apigee dan a truststore. |
<KeyStore> |
Keystore yang berisi kunci pribadi yang digunakan untuk autentikasi klien keluar |
<KeyAlias> |
Alias yang ditentukan saat Anda mengupload sertifikat dan kunci pribadi ke keystore. |
<TrustStore> |
Keystore yang berisi sertifikat server tepercaya. |
<IgnoreValidationErrors> |
Menunjukkan apakah error validasi diabaikan. Jika sistem backend menggunakan SNI dan menampilkan sertifikat dengan Nama Pembeda (DN) subjek yang tidak cocok dengan nama host, tidak ada cara untuk mengabaikan error dan koneksi akan gagal. Catatan: Jika |
<Ciphers> |
Cipher yang didukung untuk TLS/SSL keluar. Jika tidak ada cipher yang ditentukan, semua cipher tersedia untuk JVM akan diizinkan. Untuk membatasi cipher, tambahkan elemen berikut yang mencantumkan cipher yang didukung: <Ciphers> <Cipher>TLS_RSA_WITH_3DES_EDE_CBC_SHA</Cipher> <Cipher>TLS_RSA_WITH_DES_CBC_SHA</Cipher> </Ciphers> |
<Protocols> |
Protokol yang didukung untuk TLS/SSL keluar. Jika tidak ada protokol yang ditentukan, semua protokol yang tersedia untuk JVM akan diizinkan. Untuk membatasi protokol, tentukan secara eksplisit. Misalnya, untuk hanya mengizinkan TLS v1.2 atau TLS v1.3: <Protocols> <Protocol>TLSv1.2</Protocol> <Protocol>TLSv1.3</Protocol> </Protocols> |
Tentang menetapkan <KeyStore> dan <TrustStore> elemen
Pada contoh di atas, keystore dan truststore ditentukan menggunakan referensi, dalam bentuk:
<KeyStore>ref://myKeystoreRef</KeyStore> <TrustStore>ref://myTruststoreRef</TrustStore>
Dalam contoh ini:
myKeystoreRefadalah referensi yang berisi nama keystore. Dalam contoh ini, nama keystore adalah myKeystore.myTruststoreRefadalah referensi yang berisi nama truststore. Dalam contoh ini, nama truststore adalah myTruststore.
Saat masa berlaku sertifikat berakhir, Anda harus memperbarui endpoint target/server target untuk menentukan keystore atau truststore yang berisi sertifikat baru. Namun, jika menggunakan referensi, Anda dapat mengubah nilai referensi untuk mencerminkan nama keystore atau truststore baru, bukan mengubah endpoint target/server target. Mengubah nilai referensi tidak mengharuskan Anda menghubungi Google Cloud Customer Care.
Atau, Anda dapat menentukan nama keystore dan nama truststore secara langsung:
<KeyStore>myKeystore</KeyStore> <TrustStore>myTruststore</TrustStore>
Jika Anda menentukan nama keystore atau truststore secara langsung, Anda harus menghubungi Google Cloud Customer Care.
Opsi ketiga adalah menggunakan variabel alur:
<KeyStore>{ssl.keystore}</KeyStore>
<TrustStore>{ssl.truststore}</TrustStore>Anda dapat menggunakan variabel alur untuk menentukan keystore atau truststore secara dinamis, dengan efek yang mirip dengan penggunaan referensi. Untuk mengetahui informasi selengkapnya, lihat Menggunakan variabel alur untuk menetapkan nilai TLS/SSL secara dinamis.
Tentang mengonfigurasi TLS
Semua pelanggan Apigee, baik yang berbayar maupun evaluasi, memiliki kontrol penuh atas konfigurasi endpoint target/server target. Selain itu, pelanggan Apigee berbayar memiliki kontrol penuh atas properti TLS.
Menangani sertifikat yang masa berlakunya habis
Jika masa berlaku sertifikat TLS berakhir, atau jika konfigurasi sistem Anda berubah sehingga sertifikat tidak lagi valid, Anda harus memperbarui sertifikat. Saat mengonfigurasi TLS untuk endpoint target/server target, Anda harus memutuskan cara melakukan pembaruan tersebut sebelum melakukan konfigurasi apa pun.
Saat masa berlaku sertifikat berakhir
Di Apigee, Anda menyimpan sertifikat di salah satu dari dua tempat berikut:
- Keystore - Berisi sertifikat TLS dan kunci pribadi yang digunakan untuk mengidentifikasi entitas selama TLS handshake.
- Truststore - Berisi sertifikat tepercaya di klien TLS yang digunakan untuk memvalidasi sertifikat server TLS yang ditampilkan kepada klien. Sertifikat ini biasanya merupakan sertifikat yang ditandatangani sendiri, sertifikat yang ditandatangani oleh CA tepercaya, atau sertifikat yang digunakan sebagai bagian dari TLS dua arah (juga dikenal sebagai mutual TLS atau mTLS).
Metode yang Anda gunakan untuk menentukan keystore dan truststore di endpoint target atau server target menentukan cara Anda melakukan pembaruan sertifikat. Anda dapat menggunakan referensi, nama langsung, atau variabel alur. Setiap metode memiliki konsekuensi yang berbeda pada proses pembaruan, seperti yang dijelaskan dalam tabel berikut:
| Jenis konfigurasi | Cara memperbarui/mengganti sertifikat | Penggunaan / Dampak |
|---|---|---|
| Referensi (Direkomendasikan) |
Keystore: Buat keystore baru dengan nama baru dan alias dengan nama yang sama dengan alias lama. Truststore: Buat truststore dengan nama baru. Nama alias tidak penting. |
Perbarui referensi untuk mengarah ke penyimpanan baru.
Tidak perlu menghubungi Dukungan Apigee. Tidak ada periode nonaktif. |
| Variabel alur |
Keystore: Buat keystore baru dengan nama baru dan alias dengan nama yang sama atau baru. Truststore: Buat truststore dengan nama baru. |
Teruskan variabel alur yang diperbarui pada setiap permintaan dengan nama penyimpanan baru.
Tidak perlu menghubungi Dukungan Apigee. Tidak ada periode nonaktif. |
| Langsung |
Metode 1: Membuat penyimpanan baru (Direkomendasikan untuk menghindari periode nonaktif) Buat keystore atau truststore baru dengan nama baru dan upload sertifikat baru (dan kunci pribadi jika membuat keystore). |
Perbarui konfigurasi endpoint target atau server target untuk menentukan nama toko baru secara langsung, lalu deploy ulang proxy API.
Tidak perlu menghubungi Dukungan Apigee. |
| Langsung |
Metode 2a: Pembaruan di tempat (Hapus &Buat Ulang) Hapus keystore atau truststore dan buat ulang dengan nama yang sama. |
Permintaan API akan gagal selama periode penghapusan dan pembuatan ulang. Karena Message Processor menyimpan cache penyimpanan yang ditentukan secara langsung, Message Processor tidak akan otomatis mendeteksi sertifikat yang diperbarui. Anda harus menghubungi Google Cloud Customer Care untuk memulai ulang Message Processor. |
| Langsung |
Metode 2b: Pembaruan di tempat (Upload truststore) Untuk truststore saja, upload sertifikat baru langsung ke truststore yang ada. |
Karena Message Processor menyimpan cache penyimpanan yang ditentukan secara langsung, Message Processor tidak akan otomatis mendeteksi sertifikat baru. Anda harus menghubungi Google Cloud Customer Care untuk memulai ulang Message Processor. |