شما در حال مشاهده اسناد 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 را در پردازشگرهای پیام فعال کنید تا با سرورهای باطنی که SNI را پشتیبانی می کنند ارتباط برقرار کنید
- در صورت نیاز ، SNI را در پردازشگرهای پیام غیرفعال کنید
- بررسی کنید که پیکربندی SNI با موفقیت در پردازشگرهای پیام به روز شده است
قبل از شروع
- اگر با SNI آشنایی ندارید، استفاده از SNI با لبه را بخوانید.
- اگر با پیکربندی Edge در Private Cloud آشنایی ندارید، نحوه پیکربندی Edge را بخوانید.
شناسایی سرور فعال SNI
این بخش نحوه شناسایی فعال بودن یا نبودن سرور باطن SNI را توضیح می دهد.
- دستور
openssl
را اجرا کنید و سعی کنید به نام میزبان سرور مربوطه (Edge Router یا سرور باطن) بدون ارسال نام سرور متصل شوید، همانطور که در زیر نشان داده شده است:openssl s_client -connect hostname:port
- ممکن است گواهی ها را دریافت کنید و گاهی اوقات ممکن است شکست دست دادن را در دستور
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
- دستور
openssl
را اجرا کنید و سعی کنید به نام میزبان سرور مربوطه (روتر Edge یا سرور باطن) با عبور نام سرور مانند شکل زیر متصل شوید:openssl s_client -connect hostname:port -servername hostname
- اگر در مرحله 1 با شکست دست دادن مواجه شدید یا در مرحله 1 و 2 گواهینامه های متفاوتی دریافت کردید، این نشان می دهد که سرور مشخص شده SNI فعال است.
- اگر میخواهید این مورد را برای بیش از یک سرور بکاند تأیید کنید، باید مراحل بالا را برای هر سرور باطنی تکرار کنید.
اگر متوجه شدید که یک یا چند سرور باطن دارید که SNI فعال هستند، باید SNI را در مولفه Message Processor همانطور که در زیر توضیح داده شده است فعال کنید. در غیر این صورت، درخواستهای API که از طریق Apigee Edge انجام میشوند، با خطاهای TLS Handshake با شکست مواجه میشوند.
SNI را بین پردازشگرهای پیام لبه و سرور باطن فعال کنید
این بخش نحوه فعال کردن SNI را بین پردازشگر پیام Edge و سرور باطن توضیح می دهد. SNI را می توان از طریق ویژگی jsse.enableSNIExtension
در مولفه Message Processor فعال کرد. برای پیکربندی هر خاصیت روی Message Processor، از توکن مطابق نحوی که در نحوه پیکربندی Edge توضیح داده شده است استفاده کنید.
برای فعال کردن SNI در پردازشگرهای پیام، مراحل زیر را انجام دهید:
توکن برای ویژگی jsse.enableSNIExtension
را پیدا کنید
مراحل زیر نحوه یافتن توکن برای ویژگی jsse.enableSNIExtension
را شرح می دهد:
- با استفاده از دستور زیر، ویژگی
jsse.enableSNIExtension
را در فهرست منبع پیام پردازشگر/opt/apigee/edge-message-processor/source
جستجو کنید:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
- خروجی این دستور توکن ویژگی 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 شرح می دهد.
- در دستگاه Message Processor، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.
/opt/apigee/customer/application/message-processor.properties
به عنوان مثال، برای باز کردن فایل با استفاده از
vi
، دستور زیر را وارد کنید:vi /opt/apigee/customer/application/message-processor.properties
- یک خط با فرمت زیر به فایل خواص اضافه کنید:
conf_system_jsse.enableSNIExtension=true
- تغییرات خود را ذخیره کنید.
- همانطور که در زیر نشان داده شده است، اطمینان حاصل کنید که این فایل خصوصیات متعلق به کاربر
apigee
است:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- پردازشگر پیام را مانند تصویر زیر راه اندازی مجدد کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- بررسی کنید که پیکربندی SNI در پردازشگر پیام به روز شده است.
- اگر بیش از یک پردازشگر پیام دارید، این مراحل بالا را در همه پردازشگرهای پیام تکرار کنید.
SNI را بین پردازشگرهای پیام Edge و سرور باطن غیرفعال کنید
معمولاً پس از فعال کردن SNI نباید هیچ مشکلی مشاهده کنید. با این حال، اگر پس از فعال کردن SNI، مشکلات اتصال بین Edge Message Processor و سرور باطن را مشاهده کردید، همیشه میتوانید با انجام مراحل زیر SNI را غیرفعال کنید.
SNI را می توان با تنظیم ویژگی jsse.enableSNIExtension
به false
در مولفه Message Processor غیرفعال کرد.
SNI را در پردازشگرهای پیام غیرفعال کنید
مراحل زیر نحوه غیرفعال کردن SNI را در پردازنده های پیام Apigee شرح می دهد.
- در دستگاه Message Processor، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.
/opt/apigee/customer/application/message-processor.properties
به عنوان مثال، برای باز کردن فایل با استفاده از
vi
، دستور زیر را وارد کنید:vi /opt/apigee/customer/application/message-processor.properties
- اگر خط
conf_system_jsse.enableSNIExtension=true
در/opt/apigee/customer/application/message-processor.properties
وجود داشته باشد، آن را به صورت زیر تغییر دهید:conf_system_jsse.enableSNIExtension=false
- تغییرات خود را ذخیره کنید.
- همانطور که در زیر نشان داده شده است، اطمینان حاصل کنید که این فایل خصوصیات متعلق به کاربر
apigee
است:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- پردازشگر پیام را مطابق شکل زیر راه اندازی مجدد کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- بررسی کنید که پیکربندی SNI در پردازشگر پیام به روز شده است.
- اگر بیش از یک پردازشگر پیام دارید، مراحل بالا را در همه پردازشگرهای پیام تکرار کنید.
بررسی پیکربندی SNI در پردازشگرهای پیام
این بخش نحوه تأیید اینکه پیکربندی SNI با موفقیت در پردازشگرهای پیام به روز شده است را توضیح می دهد.
حتی اگر از token conf_system_jsse.enableSNIExtension
برای پیکربندی SNI در پردازشگر پیام استفاده میکنید، باید بررسی کنید که ویژگی واقعی jsse.enableSNIExtension
با مقدار جدید تنظیم شده باشد.
- در دستگاه Message Processor، ویژگی
jsse.enableSNIExtension
را در پوشه/opt/apigee/edge-message-processor/conf
جستجو کنید و بررسی کنید که آیا مطابق شکل زیر با مقدار جدید تنظیم شده است یا خیر:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
- اگر پیکربندی 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 با موفقیت در پردازشگر پیام فعال یا غیرفعال شده است. - اگر همچنان مقدار قدیمی ویژگی
jsse.enableSNIExtension
را می بینید، بررسی کنید که تمام مراحل ذکر شده در بخش مربوطه را برای فعال یا غیرفعال کردن SNI به درستی دنبال کرده اید. اگر هر مرحله ای را از دست داده اید، تمام مراحل را دوباره به درستی تکرار کنید. - اگر هنوز نمیتوانید SNI را فعال/غیرفعال کنید، با پشتیبانی Apigee Edge تماس بگیرید.