Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Indikasi Nama Server (SNI) memungkinkan beberapa target HTTPS ditayangkan dari IP yang sama alamat dan portanya tanpa mengharuskan target tersebut untuk menggunakan sertifikat TLS yang sama. Ketika SNI di klien, klien itu meneruskan nama {i>host <i}endpoint target sebagai bagian dari TLS handshake. Cara ini memungkinkan server TLS menentukan sertifikat TLS mana yang harus digunakan untuk memvalidasi terhadap permintaan.
Misalnya, jika target permintaan adalah https://example.com/request/path
,
klien TLS akan menambahkan ekstensi server_name
ke TLS handshake
, seperti yang ditunjukkan di bawah ini:
Edge mendukung SNI untuk:
- Permintaan dari aplikasi klien ke proxy API. Dalam skenario ini, Edge bertindak sebagai TLS server
- Permintaan dari Edge ke backend. Dalam skenario ini, Edge bertindak sebagai klien TLS.
Untuk informasi tambahan tentang SNI, lihat:
- https://en.wikipedia.org/wiki/Server_Name_Indication
- http://blog.layershift.com/sni-ssl-production-ready/
Mendukung SNI untuk permintaan ke proxy API di Tepi
Dukungan SNI untuk permintaan ke proxy API dikontrol oleh alias host dan {i>host<i}.
Tentang virtual host dan alias host
Dengan Edge, host virtual menentukan alamat IP dan port, atau nama dan port DNS, di proxy API terekspos dan, juga, URL yang digunakan aplikasi untuk mengakses proxy API. Alamat IP/nama DNS sesuai dengan Router Edge, dan nomor port adalah port terbuka di {i>Router<i}.
Saat membuat host virtual, Anda juga menentukan alias host dari host virtual tersebut.
Biasanya ini adalah nama DNS dari {i>host<i} virtual. Sebagai bagian dari penentuan proxy API yang
menangani permintaan, Router akan membandingkan header Host
dari permintaan masuk dengan
daftar alias {i>host<i} yang tersedia yang
ditentukan oleh semua {i>host<i} virtual.
Kombinasi alias host dan nomor port untuk host virtual harus unik untuk semua yang dihosting secara virtual dalam penginstalan Edge. Itu berarti beberapa host virtual dapat menggunakan nomor port yang sama jika domain tersebut memiliki alias host yang berbeda.
{i>Host<i} virtual juga menentukan apakah proxy API diakses menggunakan protokol HTTP, atau oleh protokol HTTPS terenkripsi menggunakan TLS. Saat mengonfigurasi {i>host<i} virtual untuk menggunakan HTTPS, mengaitkan host virtual dengan keystore yang berisi sertifikat dan kunci pribadi yang digunakan oleh {i>host<i} virtual selama handshake TLS.
Untuk informasi tambahan tentang host virtual, lihat:
Cara kerja SNI dengan alias host
SNI memungkinkan Anda memiliki beberapa {i>host<i} virtual yang didefinisikan pada porta yang sama, masing-masing dengan
kunci dan sertifikat TLS. Edge menentukan {i>host<i} virtual, dan
pasangan sertifikat/kunci yang digunakan oleh TLS,
berdasarkan server_name
di permintaan TLS handshake.
Router Edge membaca ekstensi server_name
di handshake TLS
permintaan, lalu menggunakannya untuk menelusuri alias host dari semua
{i>host<i}. Jika {i>Router<i} mendeteksi kecocokan dengan alias host, {i>Router<i} menggunakan sertifikat dan kunci TLS dari
{i>host<i} virtual yang terkait
dengan alias {i>host<i}. Jika tidak ditemukan kecocokan, handshake TLS akan gagal.
Daripada mengalami kegagalan handshake TLS, Anda bisa menentukan pasangan sertifikat/kunci default, sebagai yang akan dijelaskan di bagian selanjutnya.
Menentukan pasangan sertifikat/kunci default di Edge untuk Cloud
Apigee menyediakan sertifikat TLS dan kunci pribadi untuk mendukung HTTPS. Meskipun banyak pelanggan memilih menggunakan sertifikat dan kunci pribadinya sendiri pada waktu deployment, Anda bisa men-deploy API menggunakan sertifikat dan kunci Apigee.
Di Edge untuk Cloud, jika Router tidak dapat mencocokkan header SNI dengan alias host atau jika klien tidak mendukung SNI, maka {i>Router<i} menggunakan sertifikat {i>default<i} yang disediakan oleh Apigee, yaitu *.apigee.net.
Menentukan pasangan sertifikat/kunci default di Edge untuk Private Cloud
Di Edge untuk Private Cloud, jika tidak ada kecocokan yang ditemukan antara ekstensi server_name
dan alias host
dari semua {i>host<i} virtual, atau jika klien yang meminta tidak mendukung SNI, Anda dapat mengonfigurasi
Router untuk menggunakan sertifikat/kunci dari host virtual default pada port. {i>Host<i} virtual {i>default<i} adalah
yang ditentukan oleh kombinasi nama organisasi, nama lingkungan, dan nama host virtual, di
bentuk:
orgName_envName_vhName
Router menggunakan sertifikat/kunci dari kombinasi orgName_envName_vhName yang
akan muncul terlebih dahulu
dalam urutan abjad. Misalnya, permintaan masuk pada porta 443, dan ada
dua host virtual yang ditentukan untuk org example
di lingkungan prod
:
- nama host virtual =
default
- nama host virtual =
test
Dalam contoh ini, Router menggunakan sertifikat/kunci dari host virtual bernama default
karena example_prod_default
diurutkan berdasarkan abjad sebelum example_prod_test
.
Untuk mengaktifkan host virtual default:
- Pada node Router pertama, edit
/opt/apigee/customer/application/router.properties
. Jika file tersebut tidak ada, buat file tersebut. - Tambahkan properti berikut ke file agar Anda dapat menentukan host virtual default:
conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
- Mulai ulang Router:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Ulangi langkah ini pada semua Router yang tersisa.
Daripada menggunakan sertifikat/kunci dari {i>host<i} virtual default, Anda bisa secara eksplisit menentukan sertifikat/kunci default pada {i>Router<i}. Gunakan prosedur berikut untuk mendefinisikan default eksplisit pasangan kunci/sertifikat:
- Di node Router pertama, salin sertifikat dan kunci pribadi ke lokasi di node Router
yang dapat diakses oleh pengguna apigee. Misalnya,
/opt/apigee/customer/application
. - Ubah kepemilikan file ke 'apigee. pengguna:
chown apigee:apigee /opt/apigee/customer/application/myCert.pem
chown apigee:apigee /opt/apigee/customer/application/myKey.pem
- Edit
/opt/apigee/customer/application/router.properties
. Jika file tersebut tidak ada, buat file tersebut. - Tambahkan properti berikut ke file agar Anda dapat menentukan sertifikat/kunci default:
conf_load_balancing_load.balancing.driver.nginx.fallback.server.default.ssl.template.enabled=true
conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true - Tetapkan properti berikut di
router.properties
untuk menentukan lokasi dari sertifikat dan kunci:conf_load_balancing_load.balancing.driver.nginx.ssl.cert=/opt/apigee/customer/application/myCert.pem conf_load_balancing_load.balancing.driver.nginx.ssl.key=/opt/apigee/customer/application/myKey.pem
- Mulai ulang Router:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Ulangi langkah ini pada semua Router yang tersisa.
Mendukung SNI untuk permintaan dari Edge ke backend
Edge mendukung penggunaan SNI dari Pemroses Pesan untuk menargetkan endpoint di Apigee Edge untuk dari Cloud dan untuk deployment Private Cloud. Secara default, SNI diaktifkan pada Pemroses Pesan Edge untuk Cloud dan dinonaktifkan di Private Cloud.
Menggunakan SNI ke backend di Edge untuk Private Cloud
Agar Edge untuk Private Cloud, agar kompatibel dengan backend target yang ada, Apigee menonaktifkan SNI secara default. Jika backend target Anda dikonfigurasi untuk mendukung SNI, Anda dapat mengaktifkan fitur ini seperti yang dijelaskan di bawah untuk versi Edge Anda.
Tidak diperlukan konfigurasi khusus Edge lainnya. Jika lingkungan target Anda dikonfigurasi untuk SNI, Edge mendukungnya. Edge secara otomatis mengekstrak nama host dari URL permintaan dan menambahkannya ke permintaan TLS handshake.
Mengaktifkan SNI antara Edge dan backend untuk Edge versi 4.15.07.0x
Gunakan prosedur berikut untuk mengaktifkan SNI:
- Pada node Message Processor pertama, buka file
/opt/apigee4/conf/apigee/message-processor/system.properties
di editor. - Tetapkan properti berikut ke benar (true) di
system.properties
:jsse.enableSNIExtension=true
- Mulai Ulang Pemroses Pesan:
/opt/apigee4/bin/apigee-service message-processor restart
- Ulangi langkah-langkah ini pada semua Pemroses Pesan yang tersisa.
Aktifkan SNI antara Edge dan backend untuk Edge versi 4.16.01 dan yang lebih baru
Gunakan prosedur berikut untuk mengaktifkan SNI:
- Pada node Message Processor pertama, edit
/opt/apigee/customer/application/message-processor.properties
. Jika file tersebut tidak ada, buat file tersebut. - Tambahkan properti berikut ke file:
conf_system_jsse.enableSNIExtension=true
- Mulai ulang Pemroses Pesan:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Ulangi langkah-langkah ini pada semua Pemroses Pesan yang tersisa.