درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
«نشان نام سرور» (SNI) به چندین سرور زیرینه HTTPS اجازه میدهد تا از همان نشانی IP و درگاه بدون نیاز به استفاده از گواهینامه TLS یکسان توسط آن سرورهای زیرینه ارائه شوند. این پروتکل توسعه پروتکل TLS است. وقتی SNI در کارخواهی فعال باشد، کارخواه نام میزبان سرور زیرینه را بهعنوان بخشی از دستدهی اولیه TLS ارسال میکند. این کار به سرور TLS امکان میدهد تعیین کند از کدام گواهینامه TLS باید برای اعتبارسنجی درخواست کارخواه استفاده شود.
بهطور پیشفرض، SNI در عنصر «پردازشگر پیام» در Edge برای «ابر خصوصی» غیرفعال است تا سازگاری با سرورهای زیرینه موجود تضمین شود. اگر سرور زیرینه شما برای پشتیبانی از SNI پیکربندی شده است، باید SNI را در عنصر «پردازشگر پیام» فعال کنید. درغیراینصورت، درخواستهای API که از Apigee Edge عبور میکنند با خطاهای دستدهی TLS ناموفق خواهند بود.
این سند نحوه انجام موارد زیر را توضیح میدهد:
- شناسایی اینکه سرور زیرینه SNI فعال است یا نه
- برای ارتباط با سرورهای زیرینه (backend) که از SNI پشتیبانی میکنند، SNI را در «پردازشگرهای پیام» فعال کنید
- درصورت نیاز، SNI را در «پردازشگرهای پیام» غیرفعال کنید
- درستیسنجی کنید که پیکربندی SNI باموفقیت در «پردازشگرهای پیام» بهروز شده باشد
قبلاز شروع
- اگر با SNI آشنا نیستید، استفاده از SNI با edge را بخوانید.
- اگر با پیکربندی Edge در «ابر خصوصی» آشنا نیستید، نحوه پیکربندی Edge را بخوانید.
شناسایی سرور فعال SNI
این بخش نحوه شناسایی اینکه آیا سرور زیرینه SNI فعال است یا نه را شرح میدهد.
-
فرمان
opensslرا اجرا کنید و سعی کنید به نام میزبان سرور مربوطه (روتر لبه یا سرور زیرینه) بدون ارسال نام سرور، همانطور که در زیر نشان داده شده است، متصل شوید: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
- اگر در مرحله ۱ با خطای دست دادن مواجه شدید یا در مرحله ۱ و ۲ گواهینامههای متفاوتی دریافت کردید، این نشان میدهد که «سرور» مشخصشده SNI فعال است.
- اگر میخواهید این کار را برای بیشاز یک سرور زیرینه درستیسنجی کنید، باید مراحل بالا را برای هر سرور زیرینه تکرار کنید.
اگر متوجه شدید که یک یا چند سرور زیرینه دارید که SNI در آنها فعال است، باید SNI را در عنصر «پردازشگر پیام» فعال کنید، همانطور که در زیر توضیح داده شده است. درغیراینصورت، درخواستهای API که از Apigee Edge عبور میکنند با خطاهای دستدهی TLS ناموفق خواهند بود.
فعال کردن SNI بین «پردازشگرهای پیام Edge» و سرور زیرینه
این بخش توضیح میدهد چگونه SNI را بین «پردازشگر پیام Edge» و سرور زیرینه فعال کنید. SNI را میتوان ازطریق دارایی jsse.enableSNIExtension در
عنصر «پردازشگر پیام» فعال کرد. برای پیکربندی هر دارایی در «پردازشگر پیام»، از
نشان براساس دستور زبان شرحدادهشده در
نحوه پیکربندی Edge استفاده کنید.
برای فعال کردن SNI در «پردازشگرهای پیام»، مراحل زیر را انجام دهید:
یافتن کد برای دارایی jsse.enableSNIExtension
مراحل زیر نحوه یافتن کد برای دارایی jsse.enableSNIExtension را شرح میدهد:
-
بااستفاده از فرمان زیر، دارایی
jsse.enableSNIExtensionرا در دایرکتوری منبع «پردازشگر پیام»/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
-
خطی را با قالب زیر به فایل داراییها اضافه کنید:
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» و سرور پشتیبان مشاهده کردید، همیشه میتوانید با انجام مراحل زیر، SNI را غیرفعال کنید.
با تنظیم کردن دارایی jsse.enableSNIExtension
به false در عنصر «پردازشگر پیام»، میتوانید SNI را غیرفعال کنید.
غیرفعال کردن 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 با مقدار جدید تنظیم شده است.
-
در ماشین «پردازشگر پیام»، دارایی
jsse.enableSNIExtensionرا در دایرکتوری/opt/apigee/edge-message-processor/confجستجو کنید و بررسی کنید که آیا با مقدار جدید تنظیم شده است یا نه، همانطور که در زیر نشان داده شده است: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به مقدار جدیدtrueیاfalseدرsystem.propertiesبهروز شده است. این نشان میدهد که SNI در «پردازشگر پیام» باموفقیت فعال یا غیرفعال شده است. -
اگر هنوز مقدار قدیمی را برای دارایی
jsse.enableSNIExtensionمیبینید، تأیید کنید که همه مراحل ذکرشده در بخش مربوطه را برای فعال یا غیرفعال کردن SNI بهدرستی دنبال کردهاید. اگر مرحلهای را ازدست دادهاید، همه مراحل را دوباره بهدرستی تکرار کنید. - اگر همچنان نمیتوانید SNI را فعال/غیرفعال کنید، با پشتیبانی Apigee Edge تماس بگیرید.