شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
نشانگر نام سرور (SNI) به چندین سرور پشتی HTTPS اجازه میدهد تا از یک آدرس IP و پورت یکسان سرویسدهی شوند، بدون اینکه لازم باشد آن سرورهای پشتی از یک گواهی TLS یکسان استفاده کنند. این یک افزونه از پروتکل TLS است. هنگامی که SNI روی یک کلاینت فعال میشود، کلاینت نام میزبان سرور پشتی را به عنوان بخشی از فرآیند اولیه TLS handshake ارسال میکند. این به سرور TLS اجازه میدهد تا تعیین کند که از کدام گواهی TLS باید برای اعتبارسنجی درخواست کلاینت استفاده شود.
به طور پیشفرض، SNI در مؤلفهی پردازشگر پیام در Edge برای Private Cloud غیرفعال است تا سازگاری با سرورهای backend موجود تضمین شود. اگر سرور backend شما برای پشتیبانی از SNI پیکربندی شده است، باید SNI را در مؤلفهی پردازشگر پیام فعال کنید. در غیر این صورت، درخواستهای API که از Apigee Edge عبور میکنند با خطای TLS Handshake Failures مواجه میشوند.
این سند نحوه انجام موارد زیر را توضیح میدهد:
- تشخیص اینکه آیا SNI روی سرور backend فعال است یا خیر
- فعال کردن SNI روی پردازندههای پیام (Message Processors) به منظور ارتباط با سرورهای backend که از SNI پشتیبانی میکنند.
- در صورت نیاز ، SNI را در پردازندههای پیام غیرفعال کنید.
- تأیید کنید که پیکربندی SNI با موفقیت در پردازندههای پیام بهروزرسانی شده است.
قبل از اینکه شروع کنی
- اگر با SNI آشنا نیستید، بخش «استفاده از SNI با edge» را مطالعه کنید.
- اگر با پیکربندی Edge در Private Cloud آشنا نیستید، نحوه پیکربندی Edge را مطالعه کنید.
شناسایی سرور فعالشده با SNI
این بخش نحوه تشخیص فعال بودن یا نبودن SNI در سرور backend را شرح میدهد.
- دستور
opensslاجرا کنید و سعی کنید بدون وارد کردن نام سرور، به نام میزبان سرور مربوطه (روتر لبهای یا سرور backend) متصل شوید، همانطور که در زیر نشان داده شده است:openssl s_client -connect hostname:port
- ممکن است گواهینامهها را دریافت کنید و گاهی اوقات ممکن است در دستور
opensslبا خطای handshake مواجه شوید، همانطور که در زیر نشان داده شده است: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 یا سرور backend) متصل شوید:openssl s_client -connect hostname:port -servername hostname
- اگر در مرحله ۱ با خطای handshake مواجه شدید یا در مرحله ۱ و مرحله ۲ گواهیهای متفاوتی دریافت کردید، نشان میدهد که سرور مشخص شده SNI فعال است.
- اگر میخواهید این موضوع را برای بیش از یک سرور backend تأیید کنید، باید مراحل بالا را برای هر سرور backend تکرار کنید.
اگر متوجه شدید که یک یا چند سرور backend دارید که SNI در آنها فعال است، باید SNI را در کامپوننت Message Processor همانطور که در زیر توضیح داده شده است فعال کنید. در غیر این صورت، درخواستهای API که از Apigee Edge عبور میکنند با خطای TLS Handshake Failures مواجه میشوند.
فعال کردن SNI بین پردازندههای پیام لبه و سرور backend
این بخش نحوه فعالسازی SNI بین پردازنده پیام Edge و سرور backend را توضیح میدهد. SNI را میتوان از طریق ویژگی jsse.enableSNIExtension در مؤلفه پردازنده پیام فعال کرد. برای پیکربندی هر ویژگی در پردازنده پیام، از توکن مطابق با سینتکس شرح داده شده در نحوه پیکربندی Edge استفاده کنید.
برای فعال کردن SNI در پردازندههای پیام، مراحل زیر را انجام دهید:
توکن مربوط به ویژگی jsse.enableSNIExtension را پیدا کنید.
مراحل زیر نحوهی یافتن توکن برای ویژگی jsse.enableSNIExtension را شرح میدهد:
- با استفاده از دستور زیر، ویژگی
jsse.enableSNIExtensionرا در دایرکتوری منبع Message Processor/opt/apigee/edge-message-processor/sourceجستجو کنید:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
- خروجی این دستور، توکن مربوط به ویژگی
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 شرح میدهد.
- در دستگاه پردازشگر پیام، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.
/opt/apigee/customer/application/message-processor.properties
برای مثال، برای باز کردن فایل با استفاده از
vi، دستور زیر را وارد کنید:vi /opt/apigee/customer/application/message-processor.properties
- یک خط با فرمت زیر به فایل 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 بین پردازندههای پیام لبه و سرور backend
معمولاً پس از فعال کردن SNI نباید هیچ مشکلی مشاهده کنید. با این حال، اگر پس از فعال کردن SNI، هرگونه مشکل اتصال بین Edge Message Processor و سرور backend مشاهده کردید، همیشه میتوانید SNI را با انجام مراحل زیر غیرفعال کنید.
SNI را میتوان با تنظیم مجدد ویژگی jsse.enableSNIExtension به false در کامپوننت Message Processor غیرفعال کرد.
غیرفعال کردن SNI در پردازندههای پیام
مراحل زیر نحوه غیرفعال کردن SNI در پردازندههای پیام Apigee را شرح میدهد.
- در دستگاه پردازشگر پیام، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.
/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 در پردازندههای پیام را توضیح میدهد.
حتی اگر از توکن conf_system_jsse.enableSNIExtension برای پیکربندی SNI در پردازنده پیام استفاده میکنید، باید تأیید کنید که ویژگی واقعی jsse.enableSNIExtension با مقدار جدید تنظیم شده است.
- در دستگاه پردازشگر پیام، در دایرکتوری
/opt/apigee/edge-message-processor/confبه دنبال ویژگیjsse.enableSNIExtensionبگردید و بررسی کنید که آیا مطابق شکل زیر با مقدار جدید تنظیم شده است یا خیر:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
- اگر پیکربندی 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درsystem.propertiesبه مقدار جدیدtrueیاfalseبهروزرسانی شده است. این نشان میدهد که SNI با موفقیت در پردازنده پیام فعال یا غیرفعال شده است. - اگر هنوز مقدار قدیمی ویژگی
jsse.enableSNIExtensionرا مشاهده میکنید، تأیید کنید که تمام مراحل ذکر شده در بخش مربوطه را برای فعال یا غیرفعال کردن SNI به درستی دنبال کردهاید. اگر هر مرحلهای را از دست دادهاید، تمام مراحل را دوباره به درستی تکرار کنید. - اگر هنوز قادر به فعال/غیرفعال کردن SNI نیستید، با پشتیبانی Apigee Edge تماس بگیرید.