پیکربندی «امنیت لایه انتقال» از Edge به زیرینه (Cloud و «ابر خصوصی»)

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

کارکرد پراکسی API به‌عنوان نگاشت یک نقطه پایانی دردسترس عموم به سرویس زیرین شما است. میزبان مجازی روشی را تعریف می‌کند که براساس آن پراکسی API عمومی درمعرض دید برنامه قرار می‌گیرد. برای مثال، میزبان مجازی تعیین می‌کند که آیا پراکسی API بااستفاده از TLS قابل‌دسترسی است یا نه. وقتی یک پراکسی API را پیکربندی می‌کنید، تعریف ProxyEndpoint آن را ویرایش کنید تا میزبان‌های مجازی مورد استفاده آن را پیکربندی کنید.

‫TargetEndpoint معادل برون‌سپاری ProxyEndpoint است. ‫TargetEndpoint به‌عنوان کارخواه HTTP از Edge به سرویس زیرینه عمل می‌کند. هنگام ایجاد کردن پراکسی API، می‌توانید آن را پیکربندی کنید تا از صفر یا چند «نقطه پایانی هدف» استفاده کند.

بیشتر بدانید:

پیکربندی TargetEndpoint یا TargetServer

برای پیکربندی TargetEndpoint، شیء XML را که TargetEndpoint را تعریف می‌کند ویرایش کنید. می‌توانید با ویرایش کردن فایل XML که TargetEndpoint را در پراکسی API شما تعریف می‌کند، TargetEndpoint را ویرایش کنید، یا آن را در «میانای کاربر مدیریت Edge» ویرایش کنید.

برای استفاده از «میانای کاربری مدیریت Edge» برای ویرایش کردن «نقطه پایانی هدف»:

  1. در https://enterprise.apigee.com به سیستم واسط کاربر مدیریت Edge وارد شوید.
  2. نام پراکسی API را برای به‌روزرسانی انتخاب کنید.
  3. برگه توسعه را انتخاب کنید.
  4. در بخش نقطه‌های پایانی هدف، پیش‌فرض را انتخاب کنید.
  5. در ناحیه کد، تعریف TargetEndpoint (نقطه پایانی هدف) مشابه زیر ظاهر می‌شود:
    <TargetEndpoint name="default">
      <Description/>
      <FaultRules/>
      <Flows/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <HTTPTargetConnection>
        <Properties/>
        <SSLInfo>
          <Enabled>true</Enabled>
          <TrustStore>ref://myTrustStoreRef</TrustStore>
        </SSLInfo>
        <URL>https://mocktarget.apigee.net</URL>
      </HTTPTargetConnection>
    </TargetEndpoint>
  6. ‫truststore را همان‌طور که در زیر در درباره پیکربندی «امنیت لایه انتقال» با زیرینه توضیح داده شده است پیکربندی کنید.
  7. هر تغییری را که می‌خواهید اعمال کنید و پراکسی را ذخیره کنید. اگر پراکسی API مستقر شده باشد، ذخیره کردن آن آن را با تنظیم جدید دوباره مستقر می‌کند.

توجه داشته باشید که تعریف TargetEndpoint شامل یک دارایی name است. از مقدار دارایی name برای پیکربندی تعریف ProxyEndpoint یک پراکسی API برای استفاده از TargetEndpoint استفاده می‌کنید. برای اطلاعات بیشتر، مرجع پیکربندی پراکسی میانای برنامه‌سازی کاربردی را ببینید.

‫TargetEndpoints را می‌توان به‌گونه‌ای پیکربندی کرد که به‌جای نشانی وب هدف صریح، به TargetServer ارجاع دهد. پیکربندی TargetServer نشانی‌های وب نقطه پایان واقعی را از پیکربندی‌های TargetEndpoint جدا می‌کند. از TargetServers برای پشتیبانی از تراز بار و انتقال خرابی در چندین نمونه سرور زیرینه استفاده می‌شود.

تعریف TargetServer نمونه در زیر نشان داده شده است:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>80</Port>
  <IsEnabled>true</IsEnabled>
</TargetServer> 

‫TargetServer با نام در عنصر <HTTPTargetConnection> در تعریف TargetEndpoint ارجاع داده می‌شود. می‌توانید یک یا چند TargetServer نام‌گذاری‌شده را، همان‌طور که در زیر نشان داده شده است، پیکربندی کنید.

<TargetEndpoint name="default">
  ...
  <HTTPTargetConnection>
    <LoadBalancer>
      <Server name="target1" />
      <Server name="target2" />
    </LoadBalancer>
    <Path>/test</Path>
  </HTTPTargetConnection>
  ...
</TargetEndpoint>

برای اطلاعات بیشتر، توزیع بار در سرورهای زیرینه را ببینید.

درباره پیکربندی «امنیت لایه انتقال» با زیرینه

قبل‌از پیکربندی دسترسی TLS به زیرینه، باید دو نکته مهم را درک کنید:

  1. به‌طور پیش‌فرض، Edge گواهینامه زیرینه را اعتبارسنجی نمی‌کند. برای پیکربندی Edge برای اعتبارسنجی گواهینامه باید یک فروشگاه اعتماد ایجاد کنید.
  2. از مرجعی برای مشخص کردن keystore یا truststore مورداستفاده Edge استفاده کنید.

هر دو ملاحظه در زیر شرح داده شده است.

تعریف کردن فروشگاه امین برای فعال کردن اعتبارسنجی گواهینامه

هنگام ایجاد درخواست «امنیت لایه انتقال» ازطریق TargetEndpoint یا TargetServer،‏ Edge به‌طور پیش‌فرض گواهینامه «امنیت لایه انتقال» دریافتی از سرور زیرینه را اعتبارسنجی نمی‌کند . این یعنی Edge این موارد را درستی‌سنجی نمی‌کند:

  • گواهی توسط «مرجع صدور گواهی» مورداعتمادی امضا شده است.
  • گواهینامه منقضی نشده باشد.
  • گواهینامه نام مشترکی را ارائه می‌دهد. اگر نام مشترکی وجود داشته باشد، Edge تأیید نمی‌کند که نام مشترک با نام میزبان مشخص‌شده در نشانی وب مطابقت دارد.

برای پیکربندی Edge به‌منظور اعتبارسنجی گواهینامه زیرینه، باید:

  1. ایجاد فروشگاه مطمئن در Edge.
  2. گواهینامه یا زنجیره گواهینامه سرور را در truststore بارگذاری کنید. اگر گواهی سرور توسط طرف سومی امضا شده باشد، باید کل زنجیره گواهی، ازجمله گواهی CA ریشه، را در مخزن اعتماد بارگذاری کنید. «مرجع گواهینامه» مورد اعتماد ضمنی وجود ندارد.
  3. ‫truststore را به تعریف TargetEndpoint یا TargetServer اضافه کنید.

برای اطلاعات بیشتر، Keystores و Truststores را ببینید.

برای مثال:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

استفاده از مرجع برای انبار کلید یا انبار اعتماد

مثال زیر نحوه پیکربندی TargetEndpoint یا TargetServer را برای پشتیبانی از TLS نشان می‌دهد. به‌عنوان بخشی از پیکربندی TLS، شما یک truststore و keystore را به‌عنوان بخشی از تعریف TargetEndpoint یا TargetServer مشخص می‌کنید.

‫Apigee قویاً توصیه می‌کند که در تعریف TargetEndpoints یا TargetServer از مرجع انبار کلید و انبار اعتماد استفاده کنید. مزیت استفاده از مرجع این است که برای به‌روزرسانی گواهینامه TLS، فقط باید مرجع را به‌روزرسانی کنید تا به انبار کلید یا انبار اعتماد دیگری اشاره کند.

ارجاع به keystores و truststores در تعریف TargetEndpoints یا TargetServer به همان روشی کار می‌کند که برای میزبان‌های مجازی کار می‌کند.

تبدیل کردن TargetEndpoint یا TargetServer برای استفاده از مرجع

ممکن است تعریف‌های TargetEndpoint یا TargetServer موجودی داشته باشید که از نام تحت‌اللفظی keystore و truststore استفاده می‌کند. برای تبدیل تعریف TargetEndpoint یا TargetServer به استفاده از ارجاع‌ها:

  1. تعریف TargetEndpoint یا TargetServer را به‌روز کنید تا از مرجع استفاده کند.
  2. بازراه‌اندازی «پردازشگرهای پیام لبه‌ای»:
    • مشتریان فضای ابری عمومی برای راه‌اندازی مجدد «پردازشگرهای پیام»، با پشتیبانی Apigee Edge تماس بگیرند.
    • برای مشتریان «ابر خصوصی»، «پردازشگرهای پیام Edge» را یک‌به‌یک بازراه‌اندازی کنید.
  3. تأیید کنید که TargetEndpoint یا TargetServer شما به‌درستی کار می‌کند.

درحال پیکربندی «امنیت لایه انتقال» یک‌طرفه برای سرور زیرینه

هنگام استفاده از تعریف TargetEndpoint، پیکربندی دسترسی یک‌طرفه «امنیت لایه انتقال» از Edge (کارخواه «امنیت لایه انتقال») به سرور پشتیبان (سرور «امنیت لایه انتقال») به پیکربندی اضافی در Edge نیاز ندارد. پیکربندی صحیح «امنیت لایه انتقال» برعهده سرور زیرینه است.

فقط باید مطمئن شوید که عنصر <URL> در تعریف TargetEndpoint به سرویس زیرینه با پروتکل HTTPS ارجاع می‌دهد و اینکه ‫TLS را فعال می‌کنید:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

اگر از TargetServer برای تعریف سرویس زیرینه استفاده می‌کنید، «امنیت لایه انتقال» را در تعریف TargetServer فعال کنید:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
  </SSLInfo> 
</TargetServer> 

بااین‌حال، اگر می‌خواهید Edge گواهینامه زیرینه را اعتبارسنجی کند، باید یک truststore ایجاد کنید که حاوی گواهینامه زیرینه یا زنجیره گواهینامه باشد. سپس truststore را در تعریف TargetEndpoint مشخص می‌کنید:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

یا در تعریف TargetServer:

<TargetServer name="target1">
  <Host>mockserver.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
    <TrustStore>ref://myTrustStoreRef</TrustStore>
  </SSLInfo> 
</TargetServer>

برای پیکربندی «امنیت لایه انتقال» یک‌طرفه:

  1. اگر می‌خواهید گواهینامه زیرینه را اعتبارسنجی کنید، در Edge یک truststore ایجاد کنید و گواهینامه زیرینه یا زنجیره CA را همان‌طور که در Keystores و Truststores توضیح داده شده است بارگذاری کنید. برای این مثال، اگر باید یک truststore ایجاد کنید، آن را myTrustStore نام‌گذاری کنید.
  2. اگر یک مخزن اعتماد ایجاد کرده‌اید، از فراخوانی POST API زیر برای ایجاد مرجع با نام myTrustStoreRef برای مخزن اعتمادی که در بالا ایجاد کرده‌اید استفاده کنید:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
      -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
      </ResourceReference>' -u email:password
    
  3. از واسط کاربر مدیریت Edge برای به‌روزرسانی تعریف TargetEndpoint برای پراکسی API استفاده کنید (یا اگر پراکسی API را در XML تعریف می‌کنید، فایل‌های XML را برای پراکسی ویرایش کنید):
    1. در https://enterprise.apigee.com به سیستم واسط کاربر مدیریت Edge وارد شوید.
    2. در منو «واسط کاربر مدیریت Edge»، میاناهای برنامه‌سازی کاربردی را انتخاب کنید.
    3. نام پراکسی API را برای به‌روزرسانی انتخاب کنید.
    4. برگه توسعه را انتخاب کنید.
    5. در بخش نقطه‌های پایانی هدف، پیش‌فرض را انتخاب کنید.
    6. در ناحیه کد، عنصر <HTTPTargetConnection> را ویرایش کنید تا عنصر <SSLInfo> را اضافه کنید. حتماً مرجع درست مخزن اطمینان را مشخص کنید و <Enabled> را روی درست تنظیم کنید:
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <TrustStore>ref://myTrustStoreRef</TrustStore>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        …
      </TargetEndpoint>
    7. پراکسی میانای برنامه‌سازی کاربردی را ذخیره کنید. اگر پراکسی API مستقر شده باشد، ذخیره کردن آن را با تنظیم جدید دوباره مستقر می‌کند.

درحال پیکربندی «امنیت لایه انتقال» دوطرفه برای سرور پشتیبان

اگر می‌خواهید از «امنیت لایه انتقال» دوطرفه بین Edge (کارخواه «امنیت لایه انتقال») و سرور پشتیبان (سرور «امنیت لایه انتقال») پشتیبانی کنید:

  • در Edge یک keystore ایجاد کنید و گواهینامه Edge و کلید خصوصی را بارگذاری کنید.
  • اگر می‌خواهید گواهینامه زیرینه را اعتبارسنجی کنید، در Edge یک truststore بسازید که حاوی گواهینامه و زنجیره CA دریافتی از سرور زیرینه باشد.
  • «نقطه پایانی هدف» همه پراکسی‌های API را که به سرور زیرینه ارجاع می‌دهند به‌روز کنید تا دسترسی «امنیت لایه انتقال» را پیکربندی کنید.

استفاده از نام مستعار کلید برای مشخص کردن گواهینامه انبار کلید

می‌توانید چندین گواهینامه را که هرکدام نام مستعار خود را دارند در یک انبار کلید تعریف کنید. به‌طور پیش‌فرض، Edge از اولین گواهینامه تعریف‌شده در انبار کلید استفاده می‌کند.

به‌صورت اختیاری، می‌توانید Edge را پیکربندی کنید تا از گواهینامه مشخص‌شده توسط دارایی <KeyAlias> استفاده کند. این امکان را به شما می‌دهد که یک انبار کلید واحد برای چندین گواهینامه تعریف کنید، سپس گواهینامه‌ای را که می‌خواهید در تعریف TargetServer استفاده کنید انتخاب کنید. اگر Edge نتواند گواهینامه‌ای با نام مستعار مطابق با <KeyAlias> پیدا کند، از کنش پیش‌فرض انتخاب اولین گواهینامه در انبار کلید استفاده می‌کند.

کاربران Edge برای «ابر عمومی» باید برای فعال کردن این ویژگی با پشتیبانی Apigee Edge تماس بگیرند.

درحال پیکربندی «امنیت لایه انتقال» دوطرفه

برای پیکربندی «امنیت لایه انتقال» دوطرفه:

  1. بااستفاده از روشی که در اینجا توضیح داده شده است، در Edge انبار کلید ایجاد کنید و گواهینامه و کلید خصوصی را بارگذاری کنید: انبار کلید و انبار اعتماد. برای این مثال، یک انبار کلید به‌نام myTestKeystore ایجاد کنید که از نام مستعار myKey برای گواهینامه و کلید خصوصی استفاده می‌کند.
  2. از فراخوانی API زیر با روش POST برای ایجاد مرجع با نام myKeyStoreRef برای مخزن کلیدی که در بالا ایجاد کردید استفاده کنید:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myKeyStoreRef">
        <Refers>myTestKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    

    مرجع نام فروشگاه کلید و نوع مرجع را به‌عنوان KeyStore مشخص می‌کند.

    برای مشاهده مرجع، از فراخوانی GET API زیر استفاده کنید:

    curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef /
    -u email:password
    
  3. اگر می‌خواهید گواهینامه زیرینه را اعتبارسنجی کنید، در Edge یک truststore ایجاد کنید و زنجیره گواهینامه و CA را همان‌طور که در اینجا توضیح داده شده است بارگذاری کنید: Keystores و Truststores. برای این مثال، اگر باید نامی برای truststore ایجاد کنید، آن را myTrustStore بگذارید.
  4. اگر یک مخزن اعتماد ایجاد کرده‌اید، از فراخوانی POST API زیر برای ایجاد مرجع با نام myTrustStoreRef برای مخزن اعتمادی که در بالا ایجاد کرده‌اید استفاده کنید:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    
  5. از واسط کاربر مدیریت Edge برای به‌روزرسانی تعریف TargetEndpoint برای پراکسی API استفاده کنید (یا اگر پراکسی API را در XML تعریف می‌کنید، فایل‌های XML را برای پراکسی ویرایش کنید):
    1. در https://enterprise.apigee.com به سیستم واسط کاربر مدیریت Edge وارد شوید.
    2. در منو «واسط کاربر مدیریت Edge»، میاناهای برنامه‌سازی کاربردی را انتخاب کنید.
    3. نام پراکسی API را برای به‌روزرسانی انتخاب کنید.
    4. برگه توسعه را انتخاب کنید.
    5. در بخش نقطه‌های پایانی هدف، پیش‌فرض را انتخاب کنید.
    6. در ناحیه کد، عنصر <HTTPTargetConnection> را ویرایش کنید تا عنصر <SSLInfo> را اضافه کنید. حتماً نام مستعار کلید و انبار کلید صحیح را مشخص کنید و هر دو عنصر <Enabled> و <ClientAuthEnabled> را روی درست تنظیم کنید:
      <TargetEndpoint name="default">
        ...
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>true</ClientAuthEnabled>
            <KeyStore>ref://myKeyStoreRef</KeyStore>
            <KeyAlias>myKey</KeyAlias>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        ...
      </TargetEndpoint>
    7. پراکسی میانای برنامه‌سازی کاربردی را ذخیره کنید. اگر پراکسی API مستقر شده باشد، ذخیره کردن آن را با تنظیم جدید دوباره مستقر می‌کند.

برای اطلاعات بیشتر درباره گزینه‌های موجود در <TargetEndpoint>، ازجمله استفاده از متغیرها برای ارائه مقادیر <SSLInfo> TargetEndpoint، به مرجع پیکربندی پراکسی API مراجعه کنید.

درحال فعال کردن SNI

‫Edge از استفاده از «نشان نام سرور» (SNI) از «پردازشگرهای پیام» برای هدف‌یابی نقطه‌های پایان در Apigee Edge برای استقرار Cloud و Private Cloud پشتیبانی می‌کند.

برای Edge ویژه «ابر خصوصی»، برای اینکه با زیرینه‌های هدف موجودتان سازگار با نسخه قدیمی باشد، ‫Apigee به‌طور پیش‌فرض SNI را غیرفعال کرد. اگر زیرینه هدف شما برای پشتیبانی از SNI پیکربندی شده است، می‌توانید این ویژگی را فعال کنید. برای اطلاعات بیشتر، استفاده از SNI با Edge را ببینید.