پیکربندی کردن mTLS بومی Cassandra

مقدمه

به‌طور پیش‌فرض، اجزای مختلف Edge for Private Cloud مثل پردازشگرهای پیام، سرورهای مدیریت، و مسیریاب‌ها ازطریق کانال متن ساده به گره‌های Cassandra متصل می‌شوند. در چنین کانال‌هایی، داده‌های ارسالی و دریافتی Cassandra به‌صورت واضح منتقل می‌شوند. Apigee mTLS یک ویژگی مبتنی بر شبکه سرویس consul است که به ارتباطات بین اجزای خوشه Edge for Private Cloud امنیت اضافه می‌کند. این پیشنهاد Apigee همچنین امنیت «امنیت لایه انتقال» را به کانال ارتباطی بین عناصر کارخواه و Cassandra اضافه می‌کند.

این مقاله پیشنهاد جایگزین جدیدی از Apigee را پوشش می‌دهد که در آن ارتباط بین عناصر مشتری و Cassandra در Edge for Private Cloud ازطریق TLS دوطرفه (معروف به TLS دوطرفه) بااستفاده از ویژگی‌های بومی دردسترس در Cassandra بدون استفاده از شبکه سرویس خارجی ایمن می‌شود.

ویژگی mTLS بومی

فعال کردن mTLS بین Cassandra و عناصر کارخواه که در این مقاله توضیح داده شده است به ویژگی‌های TLS که به‌صورت بومی توسط Apache Cassandra ارائه می‌شود متکی است. وقتی فعال باشد، اتصال‌های کارخواه به Cassandra (در درگاه انتقال بومی CQL 9042) پیش‌از اینکه اجازه دهند اتصال‌ها برقرار شوند، با کارخواه‌ها دست دادن TLS دوطرفه انجام می‌دهند. برای هدف این اتصال «امنیت لایه انتقال» دوطرفه، Cassandra به‌عنوان سرور و مشتریان مختلفی که به Cassandra متصل می‌شوند (مثل edge-message-processor، ابزار cqlsh، و غیره) به‌عنوان مشتری عمل می‌کنند.

برای «امنیت لایه انتقال» دوطرفه (یا «امنیت لایه انتقال» متقابل یا mTLS)، هم Cassandra و هم کارخواه‌ها باید با انبار کلید خودشان راه‌اندازی شوند. انبار کلید هر گره Cassandra باید حاوی کلید و گواهی خودش باشد. انبار کلید هر برنامه کارخواه باید حاوی کلید و گواهی آن کارخواه خاص باشد. فروشگاه مطمئنی که حاوی گواهی‌ها و زنجیره مرتبط طرف مقابل است باید به Cassandra و مشتریان اضافه شود. ذخیره‌گاه مطمئن هر گره Cassandra باید حاوی گواهینامه‌های مشتریان باشد و ذخیره‌گاه مطمئن هر مشتری باید حاوی گواهینامه‌های همه گره‌های Cassandra باشد. برای کسب اطلاعات بیشتر درباره نحوه عملکرد کلی دست دادن «امنیت لایه انتقال» دوطرفه، می‌توانید به مقاله «امنیت لایه انتقال/SSL دوطرفه» Apigee مراجعه کنید.

زنجیره گواهینامه

به‌طورکلی، در «امنیت لایه انتقال دوطرفه»، گواهینامه‌های سرور، گواهینامه‌های کارخواه، زنجیره‌های گواهینامه، مخازن کلید، و مخازن اعتماد را می‌توان به روش‌های مختلفی ایجاد کرد. همین امر برای Cassandra و mTLS بومی مشتری نیز صادق است. با درنظر گرفتن نحوه عملکرد معمول سازمان‌ها در خوشه‌های Edge for Private Cloud و تعداد جفت‌های اتصال کلاینت به کاساندرا که می‌توانند ایجاد شوند، Apigee توصیه می‌کند رویکرد کلی زیر را برای پیکربندی کلیدها و گواهینامه‌ها برای این ویژگی اتخاذ کنید. روش‌های دیگری نیز وجود دارد که قابل‌اجرا هستند، اما روش زیر احتمالاً توازن خوبی بین امنیت و سربار نگهداری ارائه می‌دهد.

  1. گواهینامه ریشه و جفت کلید/گواهینامه واسط امضاشده توسط ریشه را تهیه کنید. ممکن است ازقبل چنین کلیدها و گواهینامه‌هایی را دراختیار داشته باشید. اگر ندارید، می‌توانید بااستفاده از مراحل پیوست ۱، گواهینامه‌ها و کلیدهای ریشه و واسطه خودامضا ایجاد کنید.

  2. از کلید/گواهینامه واسطه مشترک بالا برای امضا کردن همه کلیدها و گواهینامه‌های مختص برنامه (برگ) استفاده کنید.

داشتن کلید/گواهینامه واسط مشترک در ۱ خوشه باعث می‌شود که یک فروشگاه اعتماد مشترک (حاوی زنجیره گواهینامه ریشه و واسط یکسان) در هر گره Cassandra و سرویس‌گیرنده پیکربندی شود. هر گره Cassandra و برنامه مشتری گواهی و کلید برگ یکتای خود را دریافت می‌کند که با کلید/گواهی واسطه مشترک امضا شده است.

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

از رویه‌های امنیتی سازمانتان استفاده کنید تا تصمیم بگیرید که آیا از گواهینامه‌های ریشه و واسطه مشترک در خوشه‌های مختلف ابر خصوصی استفاده کنید یا نه. برای تنظیمات گواهینامه جایگزین، می‌توانید به پیوست ۲ مراجعه کنید.

مراحل باقی‌مانده در این مقاله جزئیات روش‌شناسی طراحی کلیدها و گواهی‌های بالا را ارائه می‌دهد.

محدودیت‌ها و هشدارها

محدودیت‌های زیر برای این ویژگی اعمال می‌شود.

  • این ارائه mTLS بومی بین عناصر کارخواه و Cassandra با apigee-mtls سازگار نیست. اگر از این ویژگی استفاده می‌کنید، نمی‌توانید از apigee-mtls استفاده کنید و بالعکس.
  • فعال کردن mTLS بین عناصر کارخواه و Cassandra تأثیر عملکردی بر اتصال‌های برقرارشده بین کارخواهان و Cassandra خواهد داشت. عملیاتی مثل راه‌اندازی مشتریان یا مقیاس‌بندی اتصالات Cassandra ممکن است کندتر باشد زیرا Cassandra و مشتریان باید قبل‌از شروع ارتباط، ابتدا درباره TLS مذاکره کنند. تأثیر باید جزئی باشد و به‌طورکلی قابل‌توجه نباشد.
  • در Cassandra، می‌توانید به‌صورت اختیاری mTLS را برای اتصالات کارخواه ورودی اعمال کنید. درحالی‌که اعمال می‌تواند فعال شود؛ باید درطول وظایف عملیاتی مانند ارتقای نرم‌افزار Apigee، فعال/غیرفعال کردن ویژگی‌های TLS، و انواع خاصی از چرخش‌های گواهینامه غیرفعال شود. برای جزئیات بیشتر، بخش عملیات و پیکربندی‌ها را ببینید.
  • مدیریت و نگهداری گواهینامه‌ها برعهده مشتری است.
  • چرخش گواهینامه‌ها دارای تفاوت‌های ظریفی است. برای جزئیات بیشتر، لطفاً به بخش گردش گواهینامه مراجعه کنید

فعال کردن mTLS بومی

در سطح بالا، فعال کردن mTLS بومی یک فرایند ۳ مرحله‌ای است که در زیر توضیح داده شده است:

  1. یک گواهینامه ریشه و یک جفت کلید/گواهینامه واسط تهیه کنید.
  2. جفت گواهینامه/کلید برگ یک گره Cassandra را ایجاد کنید، آن را امضا کنید، در انبار کلید ذخیره کنید، و Cassandra را برای mTLS اختیاری پیکربندی کنید. مراحل را برای هر گره Cassandra به‌صورت یک‌به‌یک تکرار کنید.
  3. جفت گواهی/کلید برگ را برای ۱ برنامه کارخواه ایجاد کنید، آن را امضا کنید، در محل ذخیره کلید ذخیره کنید، و برنامه کارخواه را برای mTLS پیکربندی کنید. مراحل را در هر برنامه کلاینت به‌صورت یک‌به‌یک تکرار کنید. برنامه‌های کارخواه:
    1. edge-management-server
    2. پردازنده پیام لبه
    3. edge-router

این مراحل در زیر به‌تفصیل شرح داده شده است:

دریافت گواهینامه‌های ریشه و واسطه

گواهینامه ریشه و جفت کلید/گواهینامه واسط امضاشده توسط ریشه را تهیه کنید. از گواهینامه ریشه و واسط امضاشده «مرجع صدور گواهی» سازمانتان استفاده کنید یا گواهینامه‌های خودامضاشده ایجاد کنید. زنجیره گواهینامه ریشه و واسط را در یک truststore ذخیره کنید. برای مشاهده فرمان‌های مفید، به پیوست ۱ مراجعه کنید. فرمان‌های بعدی فرض می‌کنند که به فایل‌های زیر دسترسی دارید:

  • ‫intermediate.key - فایل کلید برای گواهینامه واسط برای امضای گواهینامه‌های نهایی
  • ‫intermediate-cert.pem- گواهینامه واسط

پیکربندی گره‌های Cassandra

  1. انتخاب یک گره Cassandra
  2. جفت گواهینامه و کلید برگ تولید کنید و آن را با گواهینامه واسط امضا کنید. کلید و گواهی امضاشده را در یک انبار کلید ذخیره کنید. مثال در زیر:
    
    # Generate Leaf key and csr
    openssl req -newkey rsa:2048 -keyout cass-node1.key -out cass-node1-req.pem -sha256 -days 365 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=yourip/emailAddress=cassnode1@yourorg.com"
    
    # leaf cert signed by intermediate
    openssl x509 -req -in cass-node1-req.pem -CAkey intermediate.key -CA intermediate-cert.pem -days 365 -CAcreateserial -out cass-node1-cert.pem
    
    # keystore packaging leaf key and cert
    openssl pkcs12 -export -clcerts -in cass-node1-cert.pem -inkey cass-node1.key -out cass-node1-keystore.pfx -name nativemtls -password pass:keystorepass

    فایل‌های keystore و truststore را در مکان خاصی در گره قرار دهید و مطمئن شوید که کاربر apigee به آن‌ها دسترسی دارد

    cp cass-node1-keystore.pfx /opt/apigee/customer/application/
    cp truststore.pfx /opt/apigee/customer/application/
    
    chown apigee:apigee /opt/apigee/customer/application/cass-node1-keystore.pfx
    chown apigee:apigee /opt/apigee/customer/application/truststore.pfx

  3. فایل /opt/apigee/customer/application/cassandra.properties را ایجاد یا ویرایش کنید. محتوای زیر را به این فایل اضافه کنید:
    ### Enable Cassandra TLS on CQL connections
    conf_cassandra_client_encryption_enabled=true
    
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=true
    
    ### Keystore details
    conf_cassandra_client_encryption_keystore=/opt/apigee/customer/application/cass-node1-keystore.pfx
    conf_cassandra_client_encryption_keystore_password=keystorepass
    conf_cassandra_server_encryption_store_type=PKCS12
    
    ### Whether to enable 2-way TLS (or mTLS) - true or false
    conf_cassandra_client_encryption_require_client_auth=true
    
    ### When 2-way TLS is enabled, client certificate details need to be provided via a truststore
    conf_cassandra_client_encryption_truststore=/opt/apigee/customer/application/truststore.pfx
    conf_cassandra_client_encryption_truststore_password=trustpass
    conf_cassandra_client_encryption_store_type=PKCS12
    

    علاوه‌براین، برای سیستم‌عامل‌های دارای FIPS، دارایی زیر را به فایل /opt/apigee/customer/application/cassandra.properties اضافه کنید:

    conf_cassandra_client_encryption_protocol=TLSv1.2

    مطمئن شوید که فایل متعلق به کاربر apigee است و کاربر apigee می‌تواند آن را بخواند:

    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  4. پیکربندی و بازراه‌اندازی گره Cassandra
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  5. مراحل بالا را در هر گره Cassandra به‌صورت یک‌به‌یک تکرار کنید

پیکربندی برنامه‌های کارخواه

این بخش برای عناصر مشتری زیر که به Cassandra متصل می‌شوند کاربرد دارد:

  • edge-management-server
  • پردازنده پیام لبه
  • edge-router

  1. انتخاب یک عنصر کارخواه
  2. جفت گواهینامه و کلید برگ تولید کنید و آن را با گواهینامه واسط امضا کنید. کلید و گواهی امضاشده را در یک انبار کلید ذخیره کنید. مثال در زیر:
    
    # Generate Leaf key and csr
    openssl req -newkey rsa:2048 -keyout mgmt-node1.key -out mgmt-node1-req.pem -sha256 -days 365 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=yourip/emailAddress=mgmtnode1@yourorg.com"
    
    # leaf cert signed by intermediate
    openssl x509 -req -in mgmt-node1-req.pem -CAkey intermediate.key -CA intermediate-cert.pem -days 365 -CAcreateserial -out mgmt-node1-cert.pem
    
    # keystore packaging leaf key and cert
    openssl pkcs12 -export -clcerts -in mgmt-node1-cert.pem -inkey mgmt-node1.key -out mgmt-node1-keystore.pfx -name nativemtls -password pass:keystorepass
    

    فایل‌های keystore و truststore را در مکان خاصی در گره قرار دهید و مطمئن شوید که کاربر apigee به آن‌ها دسترسی دارد

    cp mgmt-node1-keystore.pfx /opt/apigee/customer/application/
    cp truststore.pfx /opt/apigee/customer/application/
    
    chown apigee:apigee /opt/apigee/customer/application/mgmt-node1-keystore.pfx
    chown apigee:apigee /opt/apigee/customer/application/truststore.pfx

  3. ایجاد و ویرایش فایل پیکربندی براساس برنامه‌ای که پیکربندی می‌کنید
    برنامه فایل پیکربندی
    سرور مدیریت /opt/apigee/customer/application/management-server.properties
    پردازنده مدیریت /opt/apigee/customer/application/message-processor.properties
    رهیاب /opt/apigee/customer/application/router.properties

    پیکربندی‌های زیر را به فایل اضافه کنید:

    ### Enable TLS on CQL connections
    conf_cassandra_sslconfig.enable.tls=true
    conf_cassandra_sslconfig.enable.mtls=true
    
    ### Keystore Details
    conf_cassandra_sslconfig.keystore.path=/opt/apigee/customer/application/mgmt-node1-keystore.pfx
    conf_cassandra_sslconfig.keystore.password=keystorepass
    conf_cassandra_sslconfig.keystore.type=PKCS12
    
    ### Truststore Details
    conf_cassandra_sslconfig.truststore.path=/opt/apigee/customer/application/truststore.pfx
    conf_cassandra_sslconfig.truststore.password=trustpass
    conf_cassandra_sslconfig.truststore.type=PKCS12
    

    مطمئن شوید که فایل پیکربندی متعلق به کاربر apigee است و قابل‌خواندن است

    chown apigee:apigee configuration file
    
    ### Example:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    

  4. بازراه‌اندازی برنامه کلاینت
    # Configure and restart service:
    apigee-service component configure
    apigee-service component restart
    # Example, to configure and restart message processor application
    apigee-service edge-message-processor configure
    apigee-service edge-message-processor restart
    
  5. با جستجوی گزارش‌های زیر در گزارش سیستم برنامه مناسب، می‌توانید تأیید کنید که SSL به‌درستی در برنامه مشتری پیکربندی شده است:

    گزینه‌های SSL به اتصال cassandra اضافه شد

  6. مراحل بالا را در هر برنامه کلاینت به‌صورت یک‌به‌یک تکرار کنید

عملیات و پیکربندی‌ها

اجرای mTLS

وقتی mTLS در Cassandra اعمال نمی‌شود، Cassandra اتصالات متن ساده از کارخواه‌ها یا کارخواهانی را که می‌تواند با آن‌ها دست‌دهی TLS دوطرفه را با موفقیت انجام دهد می‌پذیرد. برای اینکه اجرای mTLS کار کند، ابتدا باید mTLS در Cassandra پیکربندی شود. با دنبال کردن مراحل زیر می‌توانید اجرای mTLS را در Cassandra تنظیم کنید:

  1. انتخاب یک گره Cassandra
  2. فایل /opt/apigee/customer/application/cassandra.properties را ایجاد یا ویرایش کنید. دارایی زیر را در این فایل اضافه یا ویرایش کنید:
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=false
    

    مطمئن شوید که فایل متعلق به کاربر apigee است و می‌تواند آن را بخواند

    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    
  3. پیکربندی و بازراه‌اندازی گره Cassandra
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  4. مراحل بالا را در هر گره Cassandra به‌صورت یک‌به‌یک تکرار کنید

پس‌از اینکه mTLS در Cassandra اجرا شد، ابزار پُرسمان استاندارد Cassandra به‌نام cqlsh نمی‌تواند مستقیماً به Cassandra متصل شود. برای پیکربندی cqlsh برای SSL، کلید و گواهینامه جدیدی تولید کنید (مشابه کلید و گواهینامه برای برنامه‌های کارخواه) و کارهای زیر را انجام دهید:

  1. ایجاد یا ویرایش فایل $HOME/.cassandra/cqlshrc
  2. محتوای زیر را به فایل اضافه کنید:
    [ssl]
    certfile = /home/admin-user/certs/inter-root.pem
    validate = false
    userkey = /home/admin-user/certs/cqlsh1.key
    usercert = /home/admin-user/certs/cqlsh1-cert.pem
    
    • certfile - فایل گواهینامه حاوی زنجیره گواهینامه ریشه و واسط
    • ‫userkey - کلید مشتری که باید توسط cqlsh استفاده شود. این باید جفت کلید/گواهینامه برگی باشد که می‌توانید با گواهینامه واسط تولید و امضا کنید.
    • ‫usercert - گواهینامه کارخواهی که cqlsh استفاده می‌کند. این باید کلید/گواهینامه برگی باشد که می‌توانید با گواهینامه واسط تولید و امضا کنید.
  3. فرمان cqlsh را مثل همیشه اجرا کنید و متغیر مستقل --ssl را ارائه دهید. به عنوان مثال:
    $  /opt/apigee/apigee-cassandra/bin/cqlsh --ssl X.X.X.X
    Connected to Apigee at X.X.X.X:9042
    [cqlsh 6.0.0 | Cassandra 4.0.13 | CQL spec 3.4.5 | Native protocol v5]
    Use HELP for help.
    cqlsh>
    

غیرفعال کردن اجرای mTLS در Cassandra

برای غیرفعال کردن اجرای mTLS در Cassandra، مراحل زیر را دنبال کنید:

  1. انتخاب یک گره Cassandra
  2. فایل /opt/apigee/customer/application/cassandra.properties را ایجاد یا ویرایش کنید. دارایی زیر را در این فایل اضافه یا ویرایش کنید:
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=true
    

    مطمئن شوید که فایل متعلق به کاربر apigee است و کاربر apigee می‌تواند آن را بخواند

    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    
  3. پیکربندی و بازراه‌اندازی گره Cassandra
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  4. مراحل بالا را در هر گره Cassandra به‌صورت یک‌به‌یک تکرار کنید

غیرفعال کردن mTLS بومی

غیرفعال کردن mTLS بومی فرایندی چندمرحله‌ای است، مشابه فعال کردن mTLS بومی. مراحل سطح بالا عبارت‌اند از:

  1. غیرفعال کردن اجرای mTLS در Cassandra (درصورت اجرا)
  2. ‫mTLS را در همه گره‌های برنامه‌های مشتری زیر یکی‌یکی غیرفعال کنید:
    • edge-management-server
    • پردازنده پیام لبه
    • edge-router
    1. فایل پیکربندی را براساس برنامه‌ای که پیکربندی می‌کنید ایجاد و ویرایش کنید:
      برنامه فایل پیکربندی
      سرور مدیریت /opt/apigee/customer/application/management-server.properties
      پردازنده مدیریت /opt/apigee/customer/application/message-processor.properties
      رهیاب /opt/apigee/customer/application/router.properties
    2. خصوصیات زیر را در فایل پیکربندی اضافه یا ویرایش کنید:
      ### TLS on CQL connections
      conf_cassandra_sslconfig.enable.tls=false
      conf_cassandra_sslconfig.enable.mtls=false
      
    3. مطمئن شوید که فایل پیکربندی متعلق به کاربر apigee است و قابل‌خواندن است:
      chown apigee:apigee configuration file
      
      ### Example:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    4. برنامه کلاینت را بازراه‌اندازی کنید:
      
      # Configure and restart service:
      apigee-service component configure
      apigee-service component restart
      
      # Example, to configure and restart message processor application
      apigee-service edge-message-processor configure
      apigee-service edge-message-processor restart
      
    5. مراحل #a تا #d را در هر برنامه کلاینت، یکی پس‌از دیگری، تکرار کنید.
  3. ‫mTLS را در همه گره‌های Cassandra یکی‌یکی غیرفعال کنید:
    1. یک گره Cassandra را انتخاب کنید.
    2. فایل /opt/apigee/customer/application/cassandra.properties را ایجاد یا ویرایش کنید. دارایی زیر را در این فایل اضافه یا ویرایش کنید:
      ### Cassandra TLS on CQL connections
      conf_cassandra_client_encryption_enabled=false
      

      مطمئن شوید که فایل متعلق به کاربر apigee است و کاربر apigee می‌تواند آن را بخواند

      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
      
    3. پیکربندی و بازراه‌اندازی گره Cassandra
    4. apigee-service apigee-cassandra configure
      apigee-service apigee-cassandra restart
      
    5. مراحل #a تا #c را روی هر گره Cassandra، یکی‌یکی، تکرار کنید.

چرخش گواهینامه

گردش فقط برای گواهینامه‌های برگ (حفظ گواهینامه‌های واسط و ریشه یکسان)

مراحل مشابه پیکربندی برنامه‌های کارخواه را می‌توانید دنبال کنید:

  1. تولید گواهینامه/کلید برگ جدید برای یک برنامه بااستفاده از همان گواهینامه/کلید واسطه
  2. مسیر کلید/گواهینامه برگ جدید را در برنامه به‌همراه گذرواژه و نوع انبار کلید پیکربندی کنید
  3. بازراه‌اندازی برنامه
گردش برای گواهینامه‌های ریشه یا واسط

اگر قصد دارید گواهینامه میانی یا ریشه را بچرخانید، توصیه می‌شود این کار را به‌عنوان یک فرایند چند مرحله‌ای انجام دهید:

  1. غیرفعال کردن Cassandra native mTLS در سراسر خوشه‌تان.
  2. از گواهینامه‌های ریشه و واسطه جدید برای تولید گواهینامه‌های برگ یا برنامه جدید استفاده کنید.
  3. مراحل فعال کردن mTLS بومی Cassandra را بااستفاده از مجموعه جدید کلیدها و گواهی‌ها دنبال کنید.

عملیات عمومی Apigee

برای انجام عملیات عمومی Apigee مانند ارتقا نرم‌افزار Apigee، افزودن یا برداشتن گره‌های Cassandra، افزودن یا برداشتن مراکز داده، فعال یا غیرفعال کردن اصالت‌سنجی Cassandra، و غیره، مطمئن شوید که mTLS در Cassandra اجباری نباشد. اگر mTLS را اعمال کرده‌اید، قبل‌از ادامه این عملیات، اعمال را غیرفعال کنید.

ضمیمه ۱

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

تولید گواهینامه‌های ریشه و واسط خودامضاشده

# Create self-signed root key and cert
openssl req -x509 -newkey rsa:2048 -keyout root.key -out root-cert.pem -sha256 -days 3650 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=root.yourorg.com/emailAddress=apigeeroot@yourorg.com"

# Create intermediate key and cert (signed by root)
openssl req -newkey rsa:2048 -keyout intermediate.key -out intermediate-req.pem -sha256 -days 3650 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=inter.yourorg.com/emailAddress=apigeeinter@yourorg.com"

openssl x509 -req -in intermediate-req.pem -CAkey root.key -CA root-cert.pem -days 3650 -CAcreateserial -out intermediate-cert.pem

تولید کردن مخزن اعتماد

# Merge root and intermediate cert into 1 file
cat intermediate-cert.pem > inter-root.pem
cat root-cert.pem >> inter-root.pem

# Create truststore to be used everywhere
keytool -keystore truststore.pfx -storetype PKCS12 -importcert -file inter-root.pem -keypass trustpass -storepass trustpass -alias nativemtls -noprompt

پیوست ۲: تنظیمات زنجیره گواهینامه جایگزین

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

  1. داشتن کلیدهای برگ مستقیم و گواهینامه‌ها برای هر گره Cassandra یا برنامه کارخواه (بدون هیچ گواهینامه ریشه یا واسطه امضاکننده). این کار احتمالاً چرخش گواهینامه را پیچیده می‌کند.
  2. داشتن چندین مجموعه ریشه و واسطه برای موارد استفاده مختلف. برای مثال، گره‌های Cassandra یک مجموعه گواهینامه ریشه/واسطه دارند که بااستفاده از آن همه گواهینامه‌های برگ Cassandra امضا می‌شوند. به‌همین ترتیب، همه برنامه‌های مشتری ممکن است یک مجموعه ریشه/واسط جداگانه برای امضای گواهینامه‌های برگ برنامه داشته باشند. چنین تنظیماتی امکان‌پذیر است اما مستلزم افزودن زنجیره گواهینامه ریشه/واسط به فروشگاه اعتماد مناسب است. در این مثال، فروشگاه‌های اعتماد Cassandra باید حاوی گواهینامه‌های ریشه/واسط مشتری باشند و برنامه‌های مشتری باید زنجیره ریشه/واسط گره‌های Cassandra را در فروشگاه اعتماد خود داشته باشند.
  3. مشابه با مورد بالا، می‌توانید چندین مجموعه گواهینامه ریشه و واسطه برای مناطق مختلف داشته باشید، اما همه مشتریان در همه مناطق و همه سرورها در همه مناطق باید با افزودن همه آن‌ها در فروشگاه اعتماد پیکربندی‌شده، از همه زنجیره‌های ریشه و واسطه مطلع شوند.