mTLS بومی کاساندرا را پیکربندی کنید

مقدمه

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

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

ویژگی mTLS بومی

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

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

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

به طور کلی، در Two-Way TLS، گواهی‌های سرور، گواهی‌های مشتری، زنجیره‌های گواهی، فروشگاه‌های کلید و ذخیره‌سازی اعتماد را می‌توان به روش‌های مختلفی ایجاد کرد. همین امر برای Cassandra و mTLS بومی مشتری نیز صادق است. با در نظر گرفتن نحوه عملکرد سازمان‌ها معمولاً Edge برای خوشه‌های ابر خصوصی و تعداد جفت‌های اتصال مشتری به کاساندرا منحصربه‌فرد که می‌توانند ایجاد شوند، Apigee رویکرد کلی زیر را برای پیکربندی کلیدها و گواهی‌ها برای این ویژگی توصیه می‌کند. روش‌های دیگری نیز وجود دارند که قابل اجرا هستند، اما روش زیر احتمالاً تعادل خوبی بین سربار امنیت و تعمیر و نگهداری فراهم می‌کند.

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

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

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

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

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

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

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

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

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

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

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

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

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

گواهی های ریشه و میانی تهیه کنید

یک گواهی ریشه و یک جفت کلید/گواهی میانی با امضای ریشه تهیه کنید. از گواهینامه ریشه و میانی با امضای CA سازمان خود استفاده کنید یا گواهینامه های خودامضا ایجاد کنید. زنجیره گواهی ریشه و میانی را در یک Truststore ذخیره کنید. برای دستورات مفید به پیوست 1 مراجعه کنید. دستورات بعدی فرض می کنند که شما به فایل های زیر دسترسی دارید:

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

گره های کاساندرا را پیکربندی کنید

  1. یک گره کاساندرا را انتخاب کنید
  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 و قابل خواندن است:

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

برنامه های مشتری را پیکربندی کنید

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

  • edge-management-server
  • edge-message-processor
  • لبه روتر

  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 به اتصال casandra اضافه شده است

  6. مراحل بالا را در هر برنامه مشتری 1 در یک زمان تکرار کنید

عملیات و تنظیمات

mTLS را اجرا کنید

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

  1. یک گره کاساندرا را انتخاب کنید
  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. مراحل بالا را در هر گره کاساندرا یکی یکی تکرار کنید

هنگامی که 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. هنگام ارائه آرگومان --ssl مانند همیشه دستور cqlsh اجرا کنید. به عنوان مثال:
    $  /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. یک گره کاساندرا را انتخاب کنید
  2. فایل /opt/apigee/customer/application/cassandra.properties را ایجاد یا ویرایش کنید. ویژگی زیر را در این فایل اضافه یا ویرایش کنید:
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=true
    

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

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

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

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

  1. غیرفعال کردن اجرای mTLS در کاساندرا (در صورت اجرا)
  2. mTLS را در تمام گره های برنامه های مشتری زیر یکی یکی غیرفعال کنید:
    • edge-management-server
    • edge-message-processor
    • لبه روتر
    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. یک گره کاساندرا را انتخاب کنید.
    2. فایل /opt/apigee/customer/application/cassandra.properties را ایجاد یا ویرایش کنید. ویژگی زیر را در این فایل اضافه یا ویرایش کنید:
      ### Cassandra TLS on CQL connections
      conf_cassandra_client_encryption_enabled=false
      

      مطمئن شوید که فایل متعلق به کاربر 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 را در هر گره کاساندرا، یکی یکی تکرار کنید.

چرخش گواهی

چرخش فقط برای گواهی‌های برگ (با حفظ همان گواهی‌های متوسط ​​و ریشه)

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

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

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

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

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

برای انجام عملیات عمومی Apigee مانند ارتقاء نرم افزار Apigee، افزودن یا حذف گره های Cassandra، افزودن یا حذف مراکز داده، فعال یا غیرفعال کردن احراز هویت Cassandra و غیره، اطمینان حاصل کنید که mTLS در Cassandra اعمال نمی شود. اگر mTLS را اعمال کرده اید، قبل از ادامه این عملیات، اجرای آن را غیرفعال کنید .

پیوست 1

مراحل این ضمیمه را می توان برای ایجاد یک جفت کلید/گواهی با امضای خود و اضافه کردن این زنجیره گواهی به یک Truststore دنبال کرد.

گواهینامه های ریشه و میانی با امضای خود را تولید کنید

# 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

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

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

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