Anda melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Server Name Indication (SNI) memungkinkan beberapa server backend HTTPS dihosting dari alamat IP dan port yang sama tanpa mengharuskan server backend tersebut menggunakan sertifikat TLS yang sama. SNI adalah ekstensi protokol TLS. Saat SNI diaktifkan di klien, klien akan meneruskan nama host server backend sebagai bagian dari handshake TLS awal. Hal ini memungkinkan server TLS menentukan sertifikat TLS mana yang harus digunakan untuk memvalidasi permintaan dari klien.
Secara default, SNI dinonaktifkan pada komponen Message Processor di Edge untuk Private Cloud guna memastikan kompatibilitas mundur dengan server backend yang ada. Jika server backend Anda dikonfigurasi untuk mendukung SNI, Anda harus mengaktifkan SNI pada komponen Message Processor. Jika tidak, permintaan API yang melalui Apigee Edge akan gagal dengan TLS Handshake Failures.
Dokumen ini menjelaskan cara melakukan hal berikut:
- Mengidentifikasi apakah server backend mendukung SNI atau tidak
- Mengaktifkan SNI di Message Processor untuk berkomunikasi dengan backend server yang mendukung SNI
- Menonaktifkan SNI di Message Processor jika diperlukan
- Memastikan konfigurasi SNI telah berhasil diperbarui di Message Processor
Sebelum memulai
- Jika Anda belum memahami SNI, baca Menggunakan SNI dengan Edge.
- Jika Anda belum memahami cara mengonfigurasi Edge di Private Cloud, baca Cara mengonfigurasi Edge.
Mengidentifikasi server yang mendukung SNI
Bagian ini menjelaskan cara mengidentifikasi apakah server backend mendukung SNI atau tidak.
-
Jalankan perintah
openssldan coba hubungkan ke nama host server yang relevan (Edge Router atau server backend) tanpa meneruskan nama server, seperti yang ditunjukkan di bawah:openssl s_client -connect hostname:port
-
Anda mungkin mendapatkan sertifikat dan terkadang Anda mungkin mengamati kegagalan handshake dalam perintah
opensslseperti yang ditunjukkan di bawah:
CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
-
Jalankan perintah
openssldan coba hubungkan ke nama host server yang relevan (router Edge atau server backend) dengan meneruskan nama server seperti yang ditunjukkan di bawah:openssl s_client -connect hostname:port -servername hostname
- Jika Anda mengalami kegagalan handshake pada langkah 1 atau mendapatkan sertifikat yang berbeda pada langkah 1 dan langkah 2, hal ini menunjukkan bahwa Server yang ditentukan mendukung SNI.
- Jika Anda ingin memverifikasi hal ini untuk lebih dari satu server backend, Anda harus mengulangi langkah-langkah di atas untuk setiap server backend.
Jika Anda menemukan bahwa Anda memiliki satu atau beberapa server backend yang mendukung SNI, Anda harus mengaktifkan SNI pada komponen Message Processor seperti yang dijelaskan di bawah. Jika tidak, permintaan API yang melalui Apigee Edge akan gagal dengan TLS Handshake Failures.
Mengaktifkan SNI antara Edge Message Processor dan server backend
Bagian ini menjelaskan cara mengaktifkan SNI antara Edge Message Processor dan server backend. SNI dapat diaktifkan melalui properti jsse.enableSNIExtension pada
komponen Message Processor. Untuk mengonfigurasi properti apa pun di Message Processor, gunakan
token sesuai dengan sintaksis yang dijelaskan dalam
Cara mengonfigurasi Edge.
Untuk mengaktifkan SNI di Message Processor, lakukan langkah-langkah berikut:
Menemukan token untuk properti jsse.enableSNIExtension
Langkah-langkah berikut menjelaskan cara menemukan token untuk properti
jsse.enableSNIExtension:
-
Cari properti
jsse.enableSNIExtensiondi direktori sumber Message Processor menggunakan perintah berikut:/opt/apigee/edge-message-processor/sourcegrep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
Output perintah ini menunjukkan token untuk properti Message Processor
jsse.enableSNIExtensionsebagai berikut:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}Dengan string di antara tag
{T}{/T}adalah nama token yang dapat Anda tetapkan dalam file.propertiesMessage Processor.Dengan demikian, token untuk properti
jsse.enableSNIExtensionadalah sebagai berikut:conf_system_jsse.enableSNIExtension
Mengaktifkan SNI di Message Processor
Langkah-langkah berikut menjelaskan cara mengaktifkan SNI pada komponen Apigee Message Processor.
- Di mesin Message Processor, buka file berikut di editor. Jika belum ada
buat file tersebut.
/opt/apigee/customer/application/message-processor.properties
Misalnya, untuk membuka file menggunakan
vi, masukkan perintah berikut:vi /opt/apigee/customer/application/message-processor.properties
-
Tambahkan baris dalam format berikut ke file properti:
conf_system_jsse.enableSNIExtension=true
- Simpan perubahan.
-
Pastikan file properti ini dimiliki oleh pengguna
apigeeseperti yang ditunjukkan di bawah:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Mulai ulang Message Processor seperti yang ditunjukkan di bawah:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Pastikan konfigurasi SNI diperbarui di Message Processor.
- Jika Anda memiliki lebih dari satu Message Processor, ulangi langkah-langkah di atas di semua Message Processor.
Menonaktifkan SNI antara Edge Message Processor dan server backend
Umumnya, Anda tidak akan melihat masalah apa pun setelah mengaktifkan SNI. Namun, jika Anda mengamati masalah konektivitas antara Edge Message Processor dan server backend setelah mengaktifkan SNI, Anda dapat menonaktifkan SNI kapan saja dengan melakukan langkah-langkah berikut.
SNI dapat dinonaktifkan dengan menetapkan properti jsse.enableSNIExtension
kembali ke false pada komponen Message Processor.
Menonaktifkan SNI di Message Processor
Langkah-langkah berikut menjelaskan cara menonaktifkan SNI di Apigee Message Processor.
-
Di mesin Message Processor, buka file berikut di editor. Jika belum ada
buat file tersebut.
/opt/apigee/customer/application/message-processor.properties
Misalnya, untuk membuka file menggunakan
vi, masukkan perintah berikut:vi /opt/apigee/customer/application/message-processor.properties
-
Jika baris
conf_system_jsse.enableSNIExtension=trueada di/opt/apigee/customer/application/message-processor.properties, ubah seperti berikut:conf_system_jsse.enableSNIExtension=false
- Simpan perubahan.
-
Pastikan file properti ini dimiliki oleh pengguna
apigeeseperti yang ditunjukkan di bawah:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Mulai ulang Message Processor seperti yang ditunjukkan di bawah:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Pastikan konfigurasi SNI diperbarui di Message Processor.
- Jika Anda memiliki lebih dari satu Message Processor, ulangi langkah-langkah di atas di semua Message Processors.
Memverifikasi Konfigurasi SNI di Message Processor
Bagian ini menjelaskan cara memverifikasi bahwa konfigurasi SNI telah berhasil diperbarui di Message Processor.
Meskipun Anda menggunakan token conf_system_jsse.enableSNIExtension untuk
mengonfigurasi SNI di Message Processor, Anda harus memverifikasi bahwa properti sebenarnya
jsse.enableSNIExtension telah ditetapkan dengan nilai baru.
-
Di mesin Message Processor, cari properti
jsse.enableSNIExtensiondi direktori/opt/apigee/edge-message-processor/confdan periksa apakah properti tersebut telah ditetapkan dengan nilai baru seperti yang ditunjukkan di bawah:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
Jika konfigurasi SNI berhasil diperbarui di Message Processor, maka
perintah di atas akan menampilkan nilai baru dalam file
system.properties.Contoh hasil dari perintah di atas setelah Anda mengaktifkan SNI di Message Processor adalah sebagai berikut:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Demikian pula, contoh hasil dari perintah di atas setelah Anda menonaktifkan SNI di Message Processor adalah sebagai berikut:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
Dalam output contoh di atas, perhatikan bahwa properti
jsse.enableSNIExtensiontelah diperbarui ke nilai barutrueataufalsedisystem.properties. Hal ini menunjukkan bahwa SNI berhasil diaktifkan atau dinonaktifkan di Message Processor. -
Jika Anda masih melihat nilai lama untuk properti
jsse.enableSNIExtension, maka pastikan Anda telah mengikuti semua langkah yang diuraikan di bagian yang sesuai untuk mengaktifkan atau menonaktifkan SNI dengan benar. Jika Anda melewatkan langkah apa pun, ulangi semua langkah dengan benar. - Jika Anda masih tidak dapat mengaktifkan/menonaktifkan SNI , hubungi Dukungan Apigee Edge.