شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
Edge به شما امکان میدهد میزبانهای مجازی ایجاد کنید که از TLS یکطرفه و دوطرفه پشتیبانی میکنند. با TLS یکطرفه، کلاینت یک درخواست جلسه به یک میزبان مجازی مستقر در یک روتر Edge ارسال میکند و روتر با یک گواهی که حاوی کلید عمومی میزبان مجازی است پاسخ میدهد. برای یک گواهی امضا شده، کلاینت میتواند درخواستی را به مرجع صدور گواهی (CA) برای تأیید اعتبار گواهی ارسال کند.
در TLS دوطرفه، هم کلاینت و هم Edge گواهیهایی را که به عنوان بخشی از یک درخواست اعتبارسنجی میشوند، قبول میکنند:
- روتر لبه، گواهی خود را برای احراز هویت به کلاینت TLS ارائه میدهد. سپس کلاینت قبل از ارسال گواهی خود به سرور، هویت سرور را تأیید میکند.
- کلاینت TLS گواهی خود را برای احراز هویت به Edge ارائه میدهد.
برای اطلاعات بیشتر به «درباره میزبانهای مجازی» مراجعه کنید.
ضبط اطلاعات اتصال TLS
در طول درخواست به یک پروکسی API از طریق یک میزبان مجازی که از TLS پشتیبانی میکند، Edge میتواند اطلاعات مربوط به اتصال TLS را ضبط کند. پروکسی API شما سپس میتواند از طریق متغیرهای جریان به آن اطلاعات دسترسی پیدا کند تا تجزیه و تحلیل و اعتبارسنجی بیشتری انجام دهد.
نوع اطلاعات TLS ضبط شده توسط Edge بستگی به این دارد که آیا میزبان مجازی از TLS یک طرفه یا دو طرفه پشتیبانی میکند. به عنوان مثال، برای TLS یک طرفه، Edge میتواند اطلاعات مربوط به رمز TLS یا پروتکل TLS مورد استفاده در اتصال TLS را ضبط کند.
برای TLS دوطرفه، Edge میتواند تمام اطلاعات مشابه TLS یکطرفه را ضبط کند، و همچنین اطلاعات مربوط به گواهی کلاینت را نیز ضبط کند. به عنوان مثال، Edge میتواند اثر انگشت SHA1 گواهی کلاینت و گواهی کلاینت را با فرمت PEM ضبط کند.
ثبت اطلاعات برای TLS یکطرفه و دوطرفه
جدول زیر متغیرهای جریانی را فهرست میکند که حاوی اطلاعات اتصال TLS هستند که توسط Edge ضبط شده و برای دسترسی در پروکسی API در دسترس هستند. این اطلاعات برای TLS یک طرفه و دو طرفه با تنظیم <ConnectionProperties> روی true در تعریف میزبان مجازی ضبط میشود:
| متغیر جریان | توضیحات |
|---|---|
tls.cipher | رمزی که توسط اتصال TLS استفاده میشود. |
tls.protocol | پروتکلی که توسط اتصال TLS استفاده میشود. |
tls.server.name | نام سرور SNI درخواستی. |
tls.session.id | شناسه جلسه. این متغیر جریان زمانی در دسترس است که |
ثبت اطلاعات اضافی TLS در طول TLS دوطرفه
جدول زیر متغیرهای جریانی را فهرست میکند که حاوی جزئیات گواهی کلاینت هستند که توسط Edge در TLS دوطرفه ضبط شدهاند. این اطلاعات برای TLS دوطرفه با تنظیم <ClientProperties> روی true در تعریف میزبان مجازی ضبط میشود:
| متغیر جریان | توضیحات |
|---|---|
tls.client.s.dn | نام برجسته (DN) موضوع گواهی مشتری. |
tls.client.i.dn | نام برجسته صادرکننده (DN) گواهی مشتری. |
tls.client.raw.cert | گواهی مشتری در قالب PEM. |
tls.client.cert.serial | شماره سریال گواهی مشتری. |
tls.client.cert.fingerprint | اثر انگشت SHA1 مربوط به گواهی کلاینت. |
tls.session.id | شناسه جلسه. این متغیر جریان زمانی در دسترس است که |
پیکربندی یک میزبان مجازی برای ضبط اطلاعات TLS
برای پیکربندی میزبان مجازی برای ضبط اطلاعات TLS، ویژگیهای زیر را در <PropagateTLSInformation> روی true تنظیم کنید.
-
<ConnectionProperties>: ثبت اطلاعات اتصال TLS را برای TLS یکطرفه و دوطرفه فعال میکند. مقدار پیشفرضfalseاست. -
<ClientProperties>: فعال کردن دریافت اطلاعات اضافی برای TLS دوطرفه. مقدار پیشفرضfalseاست.
برای مثال، تعریف میزبان مجازی زیر از TLS دوطرفه استفاده میکند و امکان ضبط هر دو نوع اطلاعات TLS را فراهم میکند:
<VirtualHost name="secure">
....
<SSLInfo>
<Enabled>true</Enabled>
# Enable two-way TLS.
<ClientAuthEnabled>true</ClientAuthEnabled>
<IgnoreValidationErrors>false</IgnoreValidationErrors>
<KeyAlias>ks-alias</KeyAlias>
<KeyStore>ref://ks-ref</KeyStore>
<TrustStore>ref://ts-ref</TrustStore>
</SSLInfo>
<PropagateTLSInformation>
<ConnectionProperties>true</ConnectionProperties>
<ClientProperties>true</ClientProperties>
</PropagateTLSInformation>
</VirtualHost>اگر بدنه JSON را ارسال میکنید، ویژگیها را به صورت زیر تنظیم کنید:
"propagateTLSInformation" : {
"connectionProperties" : true,
"clientProperties" : true
}تنظیم محدودیتهای اندازه هدر
وقتی ضبط اطلاعات TLS را روی یک میزبان مجازی فعال میکنید، Edge آن اطلاعات را با استفاده از هدرهای HTTP منتقل میکند. بنابراین باید مطمئن شوید که محدودیتهای اندازه هدر به طور مناسب بر اساس اینکه آیا از Edge برای Cloud یا Edge برای Private Cloud استفاده میکنید، تنظیم شده است:
- لبه برای ابر : Apigee اندازه هدر را به طور مناسب تنظیم میکند.
- اج برای فضای ابری خصوصی : این ویژگی در دسترس نیست.
دسترسی به متغیرهای جریان در یک پروکسی API
از درون پروکسی API خود، میتوانید به متغیرهای جریان TLS دسترسی پیدا کرده و آنها را بررسی کنید. برای مثال، میتوانید از سیاست AssignMessage برای دسترسی به آنها استفاده کنید، و با سیاست جاوا اسکریپت به آنها در جاوا اسکریپت دسترسی پیدا کنید.
همچنین میتوانید متغیرهای جریان را در عنصر <Condition> از یک جریان پروکسی یا هدف، یا در <Step> یا <RouteRule> ارجاع دهید. برای مثال، میتوانید یک درخواست را بر اساس SN کلاینت به اهداف مختلف مسیریابی کنید.
برای اطلاعات بیشتر، ببینید: