پیکربندی مجموعه های رمز در هاست ها و روترهای مجازی

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

این سند نحوه پیکربندی مجموعه‌های رمز را در میزبان‌های مجازی و روترها در Apigee Edge توضیح می‌دهد.

مجموعه رمزگذاری مجموعه ای از الگوریتم ها است که به ایمن کردن اتصال شبکه ای که از TLS استفاده می کند کمک می کند. کلاینت و سرور باید در مورد مجموعه رمز خاصی که قرار است در تبادل پیام ها استفاده شود، توافق کنند. اگر کلاینت و سرور در مورد مجموعه رمز به توافق نرسند، در این صورت درخواست‌ها با شکست TLS Handshake با شکست مواجه می‌شوند.

در Apigee، مجموعه‌های رمز باید به طور متقابل بین برنامه‌های مشتری و روترها توافق شود.

ممکن است بخواهید مجموعه‌های رمزگذاری شده در Apigee Edge را به دلایل زیر تغییر دهید:

  • برای جلوگیری از عدم تطابق مجموعه های رمزی بین برنامه های مشتری و روترهای Apigee
  • برای استفاده از مجموعه‌های رمز امن‌تر یا برای رفع هر گونه آسیب‌پذیری امنیتی یا برای افزایش امنیت

مجموعه‌های رمز را می‌توان روی میزبان‌های مجازی یا روترهای Apigee پیکربندی کرد. توجه داشته باشید که Apigee مجموعه‌های رمز را فقط در قالب رشته‌های رمزی OpenSSL در میزبان مجازی و روتر می‌پذیرد. صفحه مدیریت رمزهای OpenSSL مجموعه رمزهای SSL یا TLS را از مشخصات مربوطه و معادل های OpenSSL آنها ارائه می دهد.

به عنوان مثال:

اگر می‌خواهید مجموعه رمز TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 را در میزبان مجازی یا روتر Apigee پیکربندی کنید، باید رشته رمز OpenSSL مربوطه را از صفحه مدیریت رمزهای OpenSSL شناسایی کنید. رشته رمز OpenSSL برای مجموعه رمز TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256. بنابراین، باید از رشته رمز OpenSSL ECDHE-RSA-AES128-GCM-SHA256 هنگام پیکربندی مجموعه رمز در میزبان مجازی یا روی روتر Apigee استفاده کنید.

قبل از شروع

پیکربندی مجموعه های رمز در میزبان های مجازی

این بخش نحوه پیکربندی مجموعه‌های رمز را در میزبان‌های مجازی مرتبط با یک سازمان و محیط توضیح می‌دهد. مجموعه‌های رمز را می‌توان در میزبان مجازی از طریق ویژگی ssl_ciphers پیکربندی کرد، که فهرست مجموعه‌های رمز پشتیبانی شده توسط میزبان مجازی را نشان می‌دهد.

برای فهرستی از مجموعه‌های رمزی که Apigee پشتیبانی می‌کند، به مجموعه‌های رمز پشتیبانی شده مراجعه کنید.

می توانید میزبان مجازی را با استفاده از یکی از روش های زیر پیکربندی کنید:

  • با استفاده از رابط کاربری Edge
  • با استفاده از Edge API

با استفاده از Edge UI

برای پیکربندی میزبان مجازی با استفاده از رابط کاربری Edge، موارد زیر را انجام دهید:

  1. وارد رابط کاربری Edge شوید.
  2. به Admin > Virtual Hosts بروید.
  3. محیط خاصی را که می‌خواهید این تغییر را در آنجا ایجاد کنید، انتخاب کنید.
  4. میزبان مجازی خاصی را که می‌خواهید مجموعه‌های رمز را برای آن پیکربندی کنید، انتخاب کنید.
  5. در قسمت Properties ، مقدار Ciphers را با فهرستی از رشته‌های رمز OpenSSL به‌روز کنید.

    برای مثال، اگر می‌خواهید فقط مجموعه‌های رمزگذاری TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 و TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 را مجاز کنید، سپس رشته‌های رمز OpenSSL مربوطه را که در جدول OpenSSL زیر نشان داده شده است، تعیین کنید:

    مجموعه رمز رشته رمز OpenSSL
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    همانطور که در شکل زیر نشان داده شده است، رشته رمز OpenSSL را با جداسازی دو نقطه اضافه کنید:

    Ciphers example

  6. تغییر را ذخیره کنید .

با استفاده از Edge API

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

  1. پیکربندی میزبان مجازی فعلی را با استفاده از Get virtual host API مطابق شکل زیر دریافت کنید:

    کاربر عمومی ابر:

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
    

    کاربر خصوصی Cloud:

    curl -v -X GET http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
    
    {
      "hostAliases": [
        "api.myCompany,com"
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    
  2. ویژگی ssl_ciphers به پیکربندی میزبان مجازی موجود JSON تحت properties با رشته‌های رمز OpenSSL مناسب اضافه کنید.

    برای مثال، اگر می‌خواهید فقط مجموعه‌های رمزگذاری TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 و TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 را مجاز کنید، سپس رشته‌های رمز OpenSSL مربوطه را که در جدول OpenSSL زیر نشان داده شده است، تعیین کنید:

    مجموعه رمز رشته رمز OpenSSL
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    بلوک کد properties زیر را اضافه کنید:

    نمونه پیکربندی میزبان مجازی به روز شده:

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "ssl_ciphers",
            "value": "DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    
  3. پیکربندی میزبان مجازی به روز شده را در یک فایل ذخیره کنید. به عنوان مثال، virtualhost-payload.json .
  4. پیکربندی virtualhost را با تغییر با استفاده از به‌روزرسانی API میزبان مجازی به صورت زیر به‌روزرسانی کنید:

    کاربر عمومی ابر:

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u {username}
    

    کاربر خصوصی Cloud:

    curl -v -X POST Content-Type: application/json
    http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u {username}
    

مجموعه های رمز پشتیبانی شده

Apigee مجموعه های رمز زیر را پشتیبانی می کند:

ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
DHE-RSA-AES256-GCM-SHA384
DHE-RSA-AES256-SHA256
DHE-RSA-AES256-SHA
DHE-RSA-CAMELLIA256-SHA
AES256-GCM-SHA384
AES256-SHA256  
AES256-SHA
CAMELLIA256-SHA
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-RSA-AES128-SHA
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES128-SHA256
DHE-RSA-AES128-SHA
DHE-RSA-CAMELLIA128-SHA
AES128-GCM-SHA256
AES128-SHA256   
AES128-SHA 
CAMELLIA128-SHA

بررسی مجموعه های رمز در میزبان های مجازی

این بخش توضیح می‌دهد که چگونه می‌توان تأیید کرد که مجموعه‌های رمز با استفاده از Edge API با موفقیت در میزبان مجازی اصلاح شده‌اند.

  1. Get virtual host API را اجرا کنید تا پیکربندی virtualhost مطابق شکل زیر دریافت کنید:

    کاربر عمومی ابر:

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
    

    کاربر خصوصی Cloud:

    curl -v -X GET http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
    
  2. بررسی کنید که ویژگی ssl_ciphers روی مقدار جدید تنظیم شده باشد.

    نمونه پیکربندی میزبان مجازی به روز شده:

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "ssl_ciphers",
            "value": "DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    

    در مثال بالا، توجه داشته باشید که ssl_ciphers با مقدار جدید تنظیم شده است.

  3. اگر همچنان مقدار قدیمی ssl_ciphers را می‌بینید، بررسی کنید که تمام مراحل ذکر شده در پیکربندی مجموعه‌های رمز در میزبان‌های مجازی را به درستی دنبال کرده‌اید. اگر هر مرحله ای را از دست داده اید، تمام مراحل را دوباره به درستی تکرار کنید.
  4. اگر هنوز نمی‌توانید مجموعه‌های رمز را به میزبان مجازی به‌روزرسانی یا اضافه کنید، با پشتیبانی Apigee Edge تماس بگیرید.

پیکربندی مجموعه های رمز در روترها

در این بخش نحوه پیکربندی مجموعه‌های رمز در روترها توضیح داده می‌شود. مجموعه‌های رمز را می‌توان از طریق ویژگی Router conf_load_balancing_load.balancing.driver.server.ssl.ciphers پیکربندی کرد، که مجموعه‌های رمز پذیرفته شده با دو نقطه را نشان می‌دهد.

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

  1. در دستگاه روتر، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.

    /opt/apigee/customer/application/router.properties
    

    به عنوان مثال، برای باز کردن فایل با vi ، عبارت زیر را وارد کنید:

    vi /opt/apigee/customer/application/router.properties
    
  2. یک خط به فرمت زیر به فایل properties اضافه کنید و مقداری را جایگزین colon_separated_cipher_suites کنید:
    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=colon_separated_cipher_suites
    

    برای مثال، اگر می‌خواهید فقط مجموعه‌های رمزگذاری TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 و TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 را مجاز کنید، سپس رشته‌های رمز OpenSSL مربوطه را که در جدول OpenSSL زیر نشان داده شده است، تعیین کنید:

    مجموعه رمز رشته رمز OpenSSL
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    و سپس خط زیر را اضافه کنید:

    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
    
  3. تغییرات خود را ذخیره کنید
  4. همانطور که در زیر نشان داده شده است، اطمینان حاصل کنید که این فایل خصوصیات متعلق به کاربر apigee است:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  5. روتر را مانند شکل زیر راه اندازی مجدد کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  6. اگر بیش از یک روتر دارید، مراحل بالا را در همه روترها تکرار کنید.

تأیید مجموعه رمز در روترها

این بخش نحوه تأیید اینکه مجموعه‌های رمز با موفقیت در روترها اصلاح شده‌اند را توضیح می‌دهد.

  1. در روتر، ویژگی conf_load_balancing_load.balancing.driver.server.ssl.ciphers را با استفاده از ابزار جستجوی Apigee از پوشه /opt/apigee جستجو کنید و بررسی کنید که آیا با مقدار جدید به صورت زیر تنظیم شده است:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
    
  2. اگر مجموعه‌های رمز جدید با موفقیت روی روتر تنظیم شوند، دستور بالا مقادیر جدید را نشان می‌دهد.

    در زیر نتیجه نمونه فرمان search بالا در هنگام به‌روزرسانی مجموعه‌های رمز به DHE-RSA-AES128-GCM-SHA256 و ECDHE-RSA-AES128-GCM-SHA256 است:

    Found key conf_load_balancing_load.balancing.driver.server.ssl.ciphers, with value, DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256, in /opt/apigee/customer//application/router.properties
    

    در خروجی مثال بالا، توجه کنید که ویژگی conf_load_balancing_load.balancing.driver.server.ssl.ciphers با مقادیر جدید مجموعه رمز تنظیم شده است. این نشان می‌دهد که مجموعه رمز با موفقیت به رشته‌های رمز OpenSSL DHE-RSA-AES128-GCM-SHA25 و ECDHE-RSA-AES128-GCM-SHA256 در روتر به‌روزرسانی شد.

  3. اگر همچنان مقادیر قدیمی مجموعه‌های رمز را مشاهده می‌کنید conf_load_balancing_load.balancing.driver.server.ssl.ciphers ، سپس بررسی کنید که تمام مراحل ذکر شده در پیکربندی مجموعه‌های رمز در روترها را به درستی دنبال کرده‌اید. اگر هر مرحله ای را از دست داده اید، تمام مراحل را دوباره به درستی تکرار کنید.
  4. اگر هنوز نمی‌توانید مجموعه‌های Cipher را در روترها تغییر دهید، با پشتیبانی Apigee Edge تماس بگیرید.