پیکربندی SNI بین «پردازشگر پیام Edge» و سرور زیرینه

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

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

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

این سند نحوه انجام موارد زیر را توضیح می‌دهد:

قبل‌از شروع

شناسایی سرور فعال SNI

این بخش نحوه شناسایی اینکه آیا سرور زیرینه SNI فعال است یا نه را شرح می‌دهد.

  1. فرمان openssl را اجرا کنید و سعی کنید به نام میزبان سرور مربوطه (روتر لبه یا سرور زیرینه) بدون ارسال نام سرور، همان‌طور که در زیر نشان داده شده است، متصل شوید:
    openssl s_client -connect hostname:port
  2. ممکن است گواهینامه‌ها را دریافت کنید و گاهی ممکن است در فرمان openssl، همان‌طور که در زیر نشان داده شده است، با خطای دست دادن مواجه شوید:
    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. فرمان openssl را اجرا کنید و با گذراندن نام سرور همان‌طور که در زیر نشان داده شده است، سعی کنید به نام میزبان سرور مربوطه (روتر Edge یا سرور پشتیبان) متصل شوید:
    openssl s_client -connect hostname:port -servername hostname
  4. اگر در مرحله ۱ با خطای دست دادن مواجه شدید یا در مرحله ۱ و ۲ گواهینامه‌های متفاوتی دریافت کردید، این نشان می‌دهد که «سرور» مشخص‌شده SNI فعال است.
  5. اگر می‌خواهید این کار را برای بیش‌از یک سرور زیرینه درستی‌سنجی کنید، باید مراحل بالا را برای هر سرور زیرینه تکرار کنید.

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

فعال کردن SNI بین «پردازشگرهای پیام Edge» و سرور زیرینه

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

برای فعال کردن SNI در «پردازشگرهای پیام»، مراحل زیر را انجام دهید:

  1. یافتن کد برای دارایی jsse.enableSNIExtension
  2. فعال کردن SNI در «پردازشگر پیام»

یافتن کد برای دارایی jsse.enableSNIExtension

مراحل زیر نحوه یافتن کد برای دارایی jsse.enableSNIExtension را شرح می‌دهد:

  1. بااستفاده از فرمان زیر، دارایی jsse.enableSNIExtension را در دایرکتوری منبع «پردازشگر پیام» /opt/apigee/edge-message-processor/source جستجو کنید:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
  2. برونداد این فرمان نشان‌دهنده نشان برای دارایی «پردازشگر پیام» jsse.enableSNIExtension به‌صورت زیر است:
    /opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}

    که در آن رشته بین برچسب‌های {T}{/T} نام نشانه‌ای است که می‌توانید در فایل .properties «پردازشگر پیام» تنظیم کنید.

    بنابراین، کد برای دارایی jsse.enableSNIExtension به‌صورت زیر است:

    conf_system_jsse.enableSNIExtension

فعال کردن SNI در «پردازشگر پیام»

مراحل زیر نحوه فعال کردن SNI را در عنصر «پردازشگر پیام Apigee» شرح می‌دهد.

  1. در دستگاه «پردازشگر پیام»، فایل زیر را در ویرایشگر باز کنید. اگر ازقبل وجود ندارد، آن را ایجاد کنید.
    /opt/apigee/customer/application/message-processor.properties

    برای مثال، برای باز کردن فایل بااستفاده از vi، فرمان زیر را وارد کنید:

    vi /opt/apigee/customer/application/message-processor.properties
  2. خطی را با قالب زیر به فایل دارایی‌ها اضافه کنید:
    conf_system_jsse.enableSNIExtension=true
  3. تغییرات را ذخیره کنید.
  4. مطمئن شوید که این فایل دارایی متعلق به کاربر apigee است، همان‌طور که در زیر نشان داده شده است:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. «پردازشگر پیام» را همان‌طور که در زیر نشان داده شده است بازراه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. تأیید کنید پیکربندی SNI در «پردازشگر پیام» به‌روز شده باشد.
  7. اگر بیش‌از یک «پردازشگر پیام» دارید، مراحل بالا را در همه «پردازشگرهای پیام» تکرار کنید.

غیرفعال کردن SNI بین «پردازشگرهای پیام Edge» و سرور زیرینه

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

با تنظیم کردن دارایی jsse.enableSNIExtension به false در عنصر «پردازشگر پیام»، می‌توانید SNI را غیرفعال کنید.

غیرفعال کردن SNI در «پردازشگرهای پیام»

مراحل زیر نحوه غیرفعال کردن SNI در «پردازشگرهای پیام Apigee» را شرح می‌دهد.

  1. در دستگاه «پردازشگر پیام»، فایل زیر را در ویرایشگر باز کنید. اگر ازقبل وجود ندارد، آن را ایجاد کنید.
    /opt/apigee/customer/application/message-processor.properties

    برای مثال، برای باز کردن فایل بااستفاده از vi، فرمان زیر را وارد کنید:

    vi /opt/apigee/customer/application/message-processor.properties
  2. اگر خط conf_system_jsse.enableSNIExtension=true در /opt/apigee/customer/application/message-processor.properties وجود دارد، آن را به‌صورت زیر تغییر دهید:
    conf_system_jsse.enableSNIExtension=false
  3. تغییرات را ذخیره کنید.
  4. مطمئن شوید که این فایل دارایی متعلق به کاربر apigee است، همان‌طور که در زیر نشان داده شده است:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. «پردازشگر پیام» را همان‌طور که در زیر نشان داده شده است بازراه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. تأیید کنید پیکربندی SNI در «پردازشگر پیام» به‌روز شده باشد.
  7. اگر بیش‌از یک «پردازشگر پیام» دارید، مراحل بالا را در همه «پردازشگرهای پیام» تکرار کنید.

درحال درستی‌سنجی پیکربندی SNI در «پردازشگرهای پیام»

این بخش توضیح می‌دهد که چگونه درستی‌سنجی کنید پیکربندی SNI باموفقیت در «پردازشگرهای پیام» به‌روز شده است.

حتی اگر از نشان conf_system_jsse.enableSNIExtension برای پیکربندی SNI در «پردازشگر پیام» استفاده می‌کنید، باید تأیید کنید که دارایی واقعی jsse.enableSNIExtension با مقدار جدید تنظیم شده است.

  1. در ماشین «پردازشگر پیام»، دارایی jsse.enableSNIExtension را در دایرکتوری /opt/apigee/edge-message-processor/conf جستجو کنید و بررسی کنید که آیا با مقدار جدید تنظیم شده است یا نه، همان‌طور که در زیر نشان داده شده است:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
  2. اگر پیکربندی SNI در «پردازشگر پیام» باموفقیت به‌روزرسانی شود، فرمان بالا مقدار جدید را در فایل system.properties نشان می‌دهد.

    نتیجه نمونه از فرمان بالا پس‌از فعال کردن SNI در «پردازنده پیام» به‌صورت زیر است:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true

    به‌همین ترتیب، نتیجه نمونه از فرمان بالا پس‌از غیرفعال کردن SNI در «پردازنده پیام» به‌صورت زیر است:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false

    در برونداد مثال بالا، توجه کنید که دارایی jsse.enableSNIExtension به مقدار جدید true یا false در system.properties به‌روز شده است. این نشان می‌دهد که SNI در «پردازشگر پیام» باموفقیت فعال یا غیرفعال شده است.

  3. اگر هنوز مقدار قدیمی را برای دارایی jsse.enableSNIExtension می‌بینید، تأیید کنید که همه مراحل ذکرشده در بخش مربوطه را برای فعال یا غیرفعال کردن SNI به‌درستی دنبال کرده‌اید. اگر مرحله‌ای را ازدست داده‌اید، همه مراحل را دوباره به‌درستی تکرار کنید.
  4. اگر همچنان نمی‌توانید SNI را فعال/غیرفعال کنید، با پشتیبانی Apigee Edge تماس بگیرید.