Mengonfigurasi SNI antara Pemroses Pesan Edge dan server backend

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:

Sebelum memulai

Mengidentifikasi server yang mendukung SNI

Bagian ini menjelaskan cara mengidentifikasi apakah server backend mendukung SNI atau tidak.

  1. Jalankan perintah openssl dan 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
  2. Anda mungkin mendapatkan sertifikat dan terkadang Anda mungkin mengamati kegagalan handshake dalam perintah openssl seperti 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
  3. Jalankan perintah openssl dan 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
  4. 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.
  5. 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:

  1. Temukan token untuk properti jsse.enableSNIExtension
  2. Aktifkan SNI di Message Processor

Menemukan token untuk properti jsse.enableSNIExtension

Langkah-langkah berikut menjelaskan cara menemukan token untuk properti jsse.enableSNIExtension:

  1. Cari properti jsse.enableSNIExtension di direktori sumber Message Processor menggunakan perintah berikut:/opt/apigee/edge-message-processor/source
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
  2. Output perintah ini menunjukkan token untuk properti Message Processor jsse.enableSNIExtension sebagai 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 .properties Message Processor.

    Dengan demikian, token untuk properti jsse.enableSNIExtension adalah sebagai berikut:

    conf_system_jsse.enableSNIExtension

Mengaktifkan SNI di Message Processor

Langkah-langkah berikut menjelaskan cara mengaktifkan SNI pada komponen Apigee Message Processor.

  1. 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
  2. Tambahkan baris dalam format berikut ke file properti:
    conf_system_jsse.enableSNIExtension=true
  3. Simpan perubahan.
  4. Pastikan file properti ini dimiliki oleh pengguna apigee seperti yang ditunjukkan di bawah:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Mulai ulang Message Processor seperti yang ditunjukkan di bawah:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Pastikan konfigurasi SNI diperbarui di Message Processor.
  7. 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.

  1. 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
  2. Jika baris conf_system_jsse.enableSNIExtension=true ada di /opt/apigee/customer/application/message-processor.properties, ubah seperti berikut:
    conf_system_jsse.enableSNIExtension=false
  3. Simpan perubahan.
  4. Pastikan file properti ini dimiliki oleh pengguna apigee seperti yang ditunjukkan di bawah:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Mulai ulang Message Processor seperti yang ditunjukkan di bawah:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Pastikan konfigurasi SNI diperbarui di Message Processor.
  7. 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.

  1. Di mesin Message Processor, cari properti jsse.enableSNIExtension di direktori /opt/apigee/edge-message-processor/conf dan periksa apakah properti tersebut telah ditetapkan dengan nilai baru seperti yang ditunjukkan di bawah:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
  2. 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.enableSNIExtension telah diperbarui ke nilai baru true atau false di system.properties. Hal ini menunjukkan bahwa SNI berhasil diaktifkan atau dinonaktifkan di Message Processor.

  3. 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.
  4. Jika Anda masih tidak dapat mengaktifkan/menonaktifkan SNI , hubungi Dukungan Apigee Edge.