پیکربندی SNI بین Edge Message Processor و سرور Backend

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

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

به طور پیش‌فرض، SNI در مولفه Message Processor در Edge برای Private Cloud غیرفعال است تا از سازگاری با سرورهای باطن موجود اطمینان حاصل شود. اگر سرور باطن شما برای پشتیبانی از SNI پیکربندی شده است، باید SNI را در مولفه Message Processor فعال کنید. در غیر این صورت، درخواست‌های API که از طریق Apigee Edge انجام می‌شوند، با خطاهای TLS Handshake Failures ناموفق خواهند بود.

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

قبل از شروع

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

این بخش نحوه شناسایی فعال بودن یا نبودن سرور باطن SNI را توضیح می دهد.

  1. دستور openssl را اجرا کنید و سعی کنید به نام میزبان سرور مربوطه (Edge Router یا سرور باطن) بدون ارسال نام سرور متصل شوید، همانطور که در زیر نشان داده شده است:
    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. اگر در مرحله 1 با شکست دست دادن مواجه شدید یا در مرحله 1 و 2 گواهینامه های متفاوتی دریافت کردید، این نشان می دهد که سرور مشخص شده SNI فعال است.
  5. اگر می‌خواهید این مورد را برای بیش از یک سرور بک‌اند تأیید کنید، باید مراحل بالا را برای هر سرور باطنی تکرار کنید.

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

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

این بخش نحوه فعال کردن SNI را بین پردازشگر پیام Edge و سرور باطن توضیح می دهد. SNI را می توان از طریق ویژگی jsse.enableSNIExtension در مولفه Message Processor فعال کرد. برای پیکربندی هر خاصیت روی Message Processor، از توکن مطابق نحوی که در نحوه پیکربندی 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. خروجی این دستور توکن ویژگی Message Processor's 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 Message Processor شرح می دهد.

  1. در دستگاه Message Processor، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.
    /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 Message Processor و سرور باطن را مشاهده کردید، همیشه می‌توانید با انجام مراحل زیر SNI را غیرفعال کنید.

SNI را می توان با تنظیم ویژگی jsse.enableSNIExtension به false در مولفه Message Processor غیرفعال کرد.

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

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

  1. در دستگاه Message Processor، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.
    /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 با موفقیت در پردازشگرهای پیام به روز شده است را توضیح می دهد.

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

  1. در دستگاه Message Processor، ویژگی jsse.enableSNIExtension را در پوشه /opt/apigee/edge-message-processor/conf جستجو کنید و بررسی کنید که آیا مطابق شکل زیر با مقدار جدید تنظیم شده است یا خیر:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
    
  2. اگر پیکربندی SNI با موفقیت در Message Processor به روز شود، دستور بالا مقدار جدید را در فایل 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 تماس بگیرید.