استفاده از SNI با Edge

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

«نشان نام سرور» (SNI) به چندین هدف HTTPS اجازه می‌دهد تا از نشانی IP و درگاه یکسان ارائه شوند بدون اینکه آن اهداف ملزم به استفاده از گواهینامه TLS یکسان باشند. وقتی SNI در کارخواهی فعال باشد، کارخواه نام میزبان نقطه پایان هدف را به‌عنوان بخشی از دست‌دهی اولیه TLS ارسال می‌کند. این کار به سرور «امنیت لایه انتقال» اجازه می‌دهد تعیین کند از کدام گواهینامه «امنیت لایه انتقال» برای اعتبارسنجی درخواست استفاده شود.

برای مثال، اگر هدف درخواست https://example.com/request/path باشد، سپس کارخواه «امنیت لایه انتقال» افزونه server_name را به درخواست «دست‌دهی امنیت لایه انتقال» اضافه می‌کند، همان‌طور که در زیر نشان داده شده است:

‫Edge از SNI برای موارد زیر پشتیبانی می‌کند:

  • درخواست‌های برنامه مشتری به پراکسی API. در این سناریو، Edge به‌عنوان سرور «امنیت لایه انتقال» عمل می‌کند
  • درخواست‌های Edge به زیرینه. در این سناریو، Edge به‌عنوان کارخواه «امنیت لایه انتقال» عمل می‌کند.

برای اطلاعات بیشتر درباره SNI، به اینجا مراجعه کنید:

پشتیبانی از SNI برای درخواست به پراکسی API در Edge

پشتیبانی SNI برای درخواست‌های پراکسی API توسط نام‌های مستعار میزبان و میزبان‌های مجازی کنترل می‌شود.

درباره میزبان‌های مجازی و نام‌های مستعار میزبان

با Edge، یک میزبان مجازی نشانی IP و درگاه، یا نام ساناد و درگاه را در آن تعریف می‌کند که یک پراکسی API در آن نمایان می‌شود و، به‌تبع آن، نشانی وبی که برنامه‌ها برای دسترسی به پراکسی API استفاده می‌کنند. نشانی IP/نام ساناد با «رهیاب لبه» مطابقت دارد و شماره درگاه یک درگاه باز در «رهیاب» است.

وقتی میزبان مجازی را ایجاد می‌کنید، نام مستعار میزبان میزبان مجازی را نیز مشخص می‌کنید. معمولاً این نام ساناد میزبان مجازی است. به‌عنوان بخشی از تعیین پراکسی API که درخواست را مدیریت می‌کند، «مسیریاب» سرصفحه Host درخواست ورودی را با فهرست نام‌های مستعار میزبان دردسترس که توسط همه میزبان‌های مجازی تعریف شده است مقایسه می‌کند.

ترکیب نام مستعار میزبان و شماره درگاه برای میزبان مجازی باید برای همه میزبان‌های مجازی در نصب Edge یکتا باشد. این یعنی چندین میزبان مجازی می‌توانند از شماره درگاه یکسان استفاده کنند، اگر نام‌های مستعار میزبان متفاوتی داشته باشند.

میزبان مجازی همچنین مشخص می‌کند که آیا ازطریق پروتکل HTTP یا ازطریق پروتکل HTTPS رمزگذاری‌شده بااستفاده از TLS به پراکسی API دسترسی پیدا شود. هنگام پیکربندی میزبان مجازی برای استفاده از HTTPS، میزبان مجازی را با انبار کلیدی که حاوی گواهینامه و کلید خصوصی مورد استفاده میزبان مجازی درطول دست دادن TLS است مرتبط کنید.

برای اطلاعات بیشتر درباره میزبان‌های مجازی، به این مقاله مراجعه کنید:

نحوه عملکرد SNI با نام‌های مستعار میزبان

«نشانگر نام سرور» به شما امکان می‌دهد چندین میزبان مجازی را در یک درگاه تعریف کنید، هرکدام با کلیدها و گواهینامه‌های «امنیت لایه انتقال» متفاوت. سپس Edge میزبان مجازی و جفت گواهینامه/کلید استفاده‌شده توسط TLS را براساس افزونه server_name در درخواست دست‌دهی TLS تعیین می‌کند.

«مسیریاب لبه» افزونه server_name را در درخواست دست‌دهی TLS می‌خواند و سپس از آن برای جستجو دربرابر نام‌های مستعار میزبان از همه میزبان‌های مجازی استفاده می‌کند. اگر «مسیریاب» با نام مستعار میزبان مطابقت پیدا کند، «مسیریاب» از گواهینامه و کلید «امنیت لایه انتقال» از میزبان مجازی مرتبط با نام مستعار میزبان استفاده می‌کند. اگر هیچ تطابقی پیدا نشود، مذاکره TLS ناموفق خواهد بود.

به‌جای اینکه دست‌دهی TLS با شکست مواجه شود، می‌توانید جفت گواهینامه/کلید پیش‌فرضی را تعریف کنید، همان‌طور که در بخش‌های بعدی توضیح داده شده است.

تعریف جفت کلید/گواهینامه پیش‌فرض در Edge برای Cloud

‫Apigee برای پشتیبانی از HTTPS، گواهی TLS و کلید خصوصی ارائه می‌دهد. اگرچه بسیاری از مشتریان ترجیح می‌دهند در زمان استقرار از گواهینامه و کلید خصوصی خودشان استفاده کنند، می‌توانید میاناهای برنامه‌سازی کاربردی خودتان را بااستفاده از گواهینامه و کلید Apigee مستقر کنید.

در Edge for the Cloud، اگر «مسیریاب» نتواند سرایند SNI را با نام مستعار میزبان مطابقت دهد یا اگر کارخواه از SNI پشتیبانی نکند، «مسیریاب» از گواهی پیش‌فرضی که Apigee ارائه کرده است (یعنی *.apigee.net) استفاده می‌کند.

تعریف جفت گواهینامه/کلید پیش‌فرض در Edge برای «ابر خصوصی»

در Edge for the Private Cloud، اگر بین افزونه server_name و نام‌های مستعار میزبان از همه میزبان‌های مجازی مطابقت پیدا نشود، یا اگر مشتری درخواست‌کننده از SNI پشتیبانی نکند، می‌توانید «مسیریاب» را پیکربندی کنید تا از گواهینامه/کلید میزبان مجازی پیش‌فرض در درگاه استفاده کند. میزبان مجازی پیش‌فرض با ترکیبی از نام سازمان، نام محیط، و نام میزبان مجازی به این شکل تعریف می‌شود:

orgName_envName_vhName

«مسیریاب» از گواهینامه/کلید ترکیب orgName_envName_vhName که به‌ترتیب حروف الفبا اول است استفاده می‌کند. برای مثال، درخواست در درگاه ۴۴۳ وارد می‌شود و دو میزبان مجازی برای سازمان example در محیط prod تعریف شده است:

  • نام میزبان مجازی = default
  • نام میزبان مجازی = test

در این مثال، «مسیریاب» از گواهینامه/کلید میزبان مجازی با نام default استفاده می‌کند زیرا example_prod_default ازنظر الفبایی قبل‌از example_prod_test قرار دارد.

برای فعال کردن میزبان مجازی پیش‌فرض:

  1. در اولین گره «مسیریاب»، /opt/apigee/customer/application/router.properties را ویرایش کنید. اگر آن فایل وجود ندارد، آن را ایجاد کنید.
  2. خصوصیت زیر را به فایل اضافه کنید تا بتوانید میزبان مجازی پیش‌فرضی را تعریف کنید:
    conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
  3. بازراه‌اندازی رهیاب:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. این مراحل را روی همه «مسیریاب‌های» باقی‌مانده تکرار کنید.

به‌جای استفاده از گواهینامه/کلید میزبان مجازی پیش‌فرض، می‌توانید گواهینامه/کلید پیش‌فرض را در «مسیریاب» به‌طور صریح تعریف کنید. برای تعریف جفت گواهینامه/کلید پیش‌فرض صریح، از روش زیر استفاده کنید:

  1. در اولین گره «مسیریاب»، گواهینامه و کلید خصوصی را در مکانی در گره «مسیریاب» کپی کنید که کاربر apigee بتواند به آن دسترسی داشته باشد. برای مثال، /opt/apigee/customer/application.
  2. مالکیت فایل‌ها را به «کاربر apigee.» تغییر دهید:
    chown apigee:apigee /opt/apigee/customer/application/myCert.pem
    chown apigee:apigee /opt/apigee/customer/application/myKey.pem
  3. ویرایش /opt/apigee/customer/application/router.properties. اگر آن فایل وجود ندارد، آن را ایجاد کنید.
  4. ویژگی‌های زیر را به فایل اضافه کنید تا بتوانید گواهینامه/کلید پیش‌فرض را مشخص کنید:
    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
  5. برای مشخص کردن مکان گواهینامه و کلید، ویژگی‌های زیر را در router.properties تنظیم کنید:
    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
  6. بازراه‌اندازی رهیاب:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. این مراحل را روی همه «مسیریاب‌های» باقی‌مانده تکرار کنید.

پشتیبانی از SNI برای درخواست‌های Edge به پشتیبان

‫Edge از استفاده از SNI از «پردازنده‌های پیام» برای هدف‌یابی نقطه‌های پایانی در Apigee Edge برای استقرار Cloud و Private Cloud پشتیبانی می‌کند. به‌طور پیش‌فرض، SNI در «پردازشگرهای پیام Edge» برای «ابر» فعال است و در «ابر خصوصی» غیرفعال است.

استفاده از SNI برای زیرینه در Edge برای «ابر خصوصی»

برای Edge for the Private Cloud، برای سازگاری با نسخه قدیمی زیرینه‌های هدف موجود، Apigee به‌طور پیش‌فرض SNI را غیرفعال کرد. اگر زیرینه هدف شما برای پشتیبانی از SNI پیکربندی شده است، می‌توانید این ویژگی را همان‌طور که در زیر برای نسخه Edge شما توضیح داده شده است فعال کنید.

هیچ پیکربندی خاص دیگری برای Edge لازم نیست. اگر محیط هدف شما برای SNI پیکربندی شده باشد، Edge از آن پشتیبانی می‌کند. ‫Edge به‌طور خودکار نام میزبان را از نشانی وب درخواست استخراج می‌کند و آن را به درخواست دست‌دهی TLS اضافه می‌کند.

فعال کردن SNI بین Edge و زیرینه برای Edge نسخه 4.15.07.0x

برای فعال کردن SNI از روش زیر استفاده کنید:

  1. در اولین گره «پردازشگر پیام»، فایل /opt/apigee4/conf/apigee/message-processor/system.properties را در ویرایشگر باز کنید.
  2. خصوصیت زیر را در system.properties روی درست تنظیم کنید:
    jsse.enableSNIExtension=true
  3. بازراه‌اندازی «پردازنده‌های پیام»:
    /opt/apigee4/bin/apigee-service message-processor restart
  4. این مراحل را روی همه «پردازشگرهای پیام» باقی‌مانده تکرار کنید.

فعال کردن SNI بین Edge و زیرینه برای Edge نسخه ۴.۱۶.۰۱ و بالاتر

برای فعال کردن SNI از روش زیر استفاده کنید:

  1. در اولین گره «پردازشگر پیام»، /opt/apigee/customer/application/message-processor.properties را ویرایش کنید. اگر آن فایل وجود ندارد، آن را ایجاد کنید.
  2. دارایی زیر را به فایل اضافه کنید:
    conf_system_jsse.enableSNIExtension=true
  3. بازراه‌اندازی «پردازشگر پیام»:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. این مراحل را روی همه «پردازشگرهای پیام» باقی‌مانده تکرار کنید.