Cassandra নেটিভ mTLS কনফিগার করা

ভূমিকা

Edge for Private Cloud-এর বিভিন্ন কম্পোনেন্ট যেমন মেসেজ প্রসেসর, ম্যানেজমেন্ট সার্ভার ও রাউটার ডিফল্ট হিসেবে প্লেনটেক্সট চ্যানেলের মাধ্যমে Cassandra নোডের সাথে কানেক্ট করে। এই ধরনের চ্যানেলে, Cassandra-তে ও Cassandra থেকে ডেটা স্পষ্ট ভাষায় কমিউনিকেট করা হয়। Apigee mTLS হল কনসাল সার্ভিস-মেশ ভিত্তিক ফিচার যা Edge for Private Cloud ক্লাস্টারের মধ্যে কম্পোনেন্টগুলির মধ্যে যোগাযোগে নিরাপত্তা যোগ করে। Apigee-এর এই অফারিং ক্লায়েন্ট কম্পোনেন্ট ও Cassandra-র মধ্যে কমিউনিকেশন চ্যানেলে TLS সুরক্ষা যোগ করে।

এই নিবন্ধে Apigee-এর দেওয়া একটি নতুন বিকল্পের কথা বলা হয়েছে যেখানে Edge for Private Cloud-এ ক্লায়েন্ট কম্পোনেন্ট ও Cassandra-র মধ্যে যোগাযোগ মিউচুয়াল TLS (যাকে ২-ওয়ে TLS-ও বলা হয়) ব্যবহার করে সুরক্ষিত করা হয়। এর জন্য Cassandra-তে আগে থেকেই উপলভ্য ফিচার ব্যবহার করা হয় এবং কোনও এক্সটার্নাল সার্ভিস মেশ ব্যবহার করা হয় না।

নেটিভ mTLS ফিচার

এই নিবন্ধে বর্ণিত Cassandra ও ক্লায়েন্ট কম্পোনেন্টের মধ্যে mTLS চালু করা Apache Cassandra-এর নেটিভ TLS ফিচারের উপর নির্ভর করে। চালু করা হলে, Cassandra-র (CQL নেটিভ ট্রান্সপোর্ট পোর্ট 9042-এ) সাথে ক্লায়েন্ট কানেকশন, কানেকশন স্থাপন করার অনুমতি দেওয়ার আগে ক্লায়েন্টদের সাথে ২-ওয়ে TLS হ্যান্ডশেক পারফর্ম করে। এই টু-ওয়ে TLS কানেকশনের উদ্দেশ্যে, Cassandra সার্ভার হিসেবে কাজ করে এবং Cassandra-র সাথে কানেক্ট করা বিভিন্ন ক্লায়েন্ট (যেমন, edge-message-processor, cqlsh টুল ইত্যাদি) ক্লায়েন্ট হিসেবে কাজ করে।

২-ওয়ে TLS (বা মিউচুয়াল TLS বা mTLS)-এর জন্য Cassandra ও ক্লায়েন্ট, দু'টিকেই নিজস্ব কীস্টোর দিয়ে সেট-আপ করতে হবে। প্রতিটি Cassandra নোডের কীস্টোরে নিজস্ব কী ও সার্টিফিকেট থাকতে হবে। প্রতিটি ক্লায়েন্ট অ্যাপ্লিকেশনের কীস্টোরে সেই নির্দিষ্ট ক্লায়েন্টের কী ও সার্টিফিকেট থাকতে হবে। সার্টিফিকেট ও সংশ্লিষ্ট চেইন থাকা একটি ট্রাস্টস্টোর, কাউন্টারপার্টকে Cassandra ও ক্লায়েন্ট, দু'জায়গাতেই যোগ করতে হবে। Cassandra-এর প্রতিটি নোডের ট্রাস্টস্টোরে ক্লায়েন্টদের সার্টিফিকেট থাকতে হবে এবং প্রতিটি ক্লায়েন্টের ট্রাস্টস্টোরে সব Cassandra নোডের সার্টিফিকেট থাকতে হবে। সাধারণত কীভাবে টু-ওয়ে TLS হ্যান্ডশেক কাজ করে সেই সম্পর্কে আরও তথ্য পেতে, আপনি Apigee-এর টু-ওয়ে TLS/SSL নিবন্ধ দেখতে পারেন।

সার্টিফিকেট চেইনিং

সাধারণত, টু-ওয়ে TLS-এ, সার্ভার সার্টিফিকেট, ক্লায়েন্ট সার্টিফিকেট, সার্টিফিকেট চেইন, কীস্টোর ও ট্রাস্টস্টোর বিভিন্ন উপায়ে তৈরি করা যেতে পারে। Cassandra এবং ক্লায়েন্ট নেটিভ mTLS-এর ক্ষেত্রেও একই কথা প্রযোজ্য। সংস্থাগুলি কীভাবে সাধারণত প্রাইভেট ক্লাউড ক্লাস্টারের জন্য Edge পরিচালনা করে এবং কতগুলি অনন্য ক্লায়েন্ট থেকে ক্যাসান্ড্রা কানেকশন পেয়ার তৈরি করা যেতে পারে তা বিবেচনা করে, Apigee এই ফিচারের জন্য কী ও সার্টিফিকেট কনফিগার করার জন্য নিম্নলিখিত সাধারণ পদ্ধতি গ্রহণ করার পরামর্শ দেয়। অন্যান্য পদ্ধতিও আছে যা ব্যবহার করা যেতে পারে, তবে নিচে উল্লেখ করা পদ্ধতিটি সম্ভবত নিরাপত্তা ও রক্ষণাবেক্ষণের ওভারহেডের মধ্যে একটি ভালো ব্যালেন্স প্রদান করে।

  1. রুট সার্টিফিকেট ও রুট দ্বারা সাইন করা অন্তর্বর্তী কী/সার্টিফিকেট পেয়ার সংগ্রহ করুন। আপনার কাছে আগে থেকেই এই ধরনের কী ও সার্টিফিকেট থাকতে পারে। তা না হলে, পরিশিষ্ট ১-এ দেওয়া ধাপগুলি অনুসরণ করে আপনি সেল্ফ-সাইন করা রুট ও ইন্টারমিডিয়েট সার্টিফিকেট ও কী তৈরি করতে পারবেন।

  2. সব অ্যাপ্লিকেশন-নির্দিষ্ট (লিফ) কী ও সার্টিফিকেটে স্বাক্ষর করতে, উপরে উল্লেখ করা সাধারণ ইন্টারমিডিয়েট কী/সার্টিফিকেট ব্যবহার করুন।

১টি ক্লাস্টার জুড়ে একটি সাধারণ ইন্টারমিডিয়েট কী/সার্টিফিকেট থাকলে, প্রতিটি Cassandra এবং ক্লায়েন্ট নোডে একটি সাধারণ ট্রাস্টস্টোর (একই রুট এবং ইন্টারমিডিয়েট সার্টিফিকেট চেইন সহ) কনফিগার করা হয়। প্রতিটি Cassandra নোড ও ক্লায়েন্ট অ্যাপ্লিকেশন নিজস্ব অনন্য লিফ কী ও সার্টিফিকেট পায় যা সাধারণ ইন্টারমিডিয়েট কী/সার্টিফিকেট দ্বারা সাইন করা হয়।

  1. Cassandra নোড বা ক্লায়েন্ট অ্যাপ্লিকেশনের লিফ সার্টিফিকেট রোটেট করা খুব সহজ।
  2. ইন্টারমিডিয়েট বা রুট সার্টিফিকেট রোটেট করা এখনও বেশ জটিল অপারেশন, তবে এই ধরনের রোটেশনের ফ্রিকোয়েন্সি লিফ সার্টিফিকেটের তুলনায় অনেক কম হবে।

বিভিন্ন প্রাইভেট ক্লাউড ক্লাস্টার জুড়ে সাধারণ রুট ও ইন্টারমিডিয়েট সার্টিফিকেট ব্যবহার করা হবে কিনা তা আপনার সংস্থার নিরাপত্তা সংক্রান্ত প্র্যাক্টিস ব্যবহার করে সিদ্ধান্ত নিন। বিকল্প সার্টিফিকেট সেট-আপের জন্য আপনি পরিশিষ্ট ২ দেখতে পারেন।

এই নিবন্ধের বাকি ধাপগুলি কী ও সার্টিফিকেট ডিজাইন করার উপরে উল্লিখিত পদ্ধতি সম্পর্কে বিবরণ প্রদান করে।

সীমাবদ্ধতা ও শর্ত

এই ফিচারের ক্ষেত্রে নিম্নলিখিত সীমাবদ্ধতা প্রযোজ্য।

  • ক্লায়েন্ট কম্পোনেন্ট ও Cassandra-এর মধ্যে নেটিভ mTLS-এর এই অফারটি apigee-mtls-এর সাথে মানানসই নয়। আপনি এই ফিচার ব্যবহার করলে, apigee-mtls ব্যবহার করতে পারবেন না এবং এর বিপরীতও হতে পারে।
  • ক্লায়েন্ট কম্পোনেন্ট ও Cassandra-র মধ্যে mTLS চালু করলে, ক্লায়েন্ট ও Cassandra-র মধ্যে কানেকশন তৈরি হওয়ার ক্ষেত্রে কিছু পারফর্ম্যান্স সংক্রান্ত প্রভাব পড়বে। ক্লায়েন্ট বুট-আপ করা বা Cassandra কানেকশন স্কেল করার মতো অপারেশন ধীরগতির হতে পারে, কারণ কমিউনিকেশন শুরু করার আগে Cassandra ও ক্লায়েন্টকে প্রথমে TLS নিয়ে আলোচনা করতে হয়। এর প্রভাব সামান্য হতে হবে এবং সাধারণত তা চোখে পড়ার মতো হওয়া উচিত নয়।
  • Cassandra-তে, ইনবাউন্ড ক্লায়েন্ট কানেকশনের ক্ষেত্রে mTLS ঐচ্ছিকভাবে প্রয়োগ করা যেতে পারে। এনফোর্সমেন্ট চালু করা গেলেও, Apigee সফ্টওয়্যার আপগ্রেড করা, TLS ফিচার চালু/বন্ধ করা এবং নির্দিষ্ট ধরনের সার্টিফিকেট রোটেশনের মতো অপারেশনাল টাস্কের সময় এটি বন্ধ রাখতে হবে। আরও বিবরণের জন্য অপারেশন ও কনফিগারেশন বিভাগ দেখুন।
  • সার্টিফিকেট ম্যানেজ ও বজায় রাখার দায়িত্ব গ্রাহকের।
  • সার্টিফিকেট রোটেট করার বিভিন্ন সূক্ষ্ম বিষয় রয়েছে। আরও বিবরণের জন্য সার্টিফিকেট রোটেশন বিভাগ দেখুন

নেটিভ mTLS চালু করা

মোটামুটিভাবে, নেটিভ mTLS চালু করা হল ৩টি ধাপের একটি পদ্ধতি যা নিচে বর্ণনা করা হয়েছে:

  1. একটি মূল সার্টিফিকেট এবং একটি অন্তর্বর্তী কী/সার্টিফিকেট পেয়ার সংগ্রহ করুন।
  2. ১টি Cassandra নোডের লিফ কী/সার্টিফিকেট পেয়ার তৈরি করুন, এতে স্বাক্ষর করুন, এটি কীস্টোরে সেভ করুন এবং ঐচ্ছিক mTLS-এর জন্য Cassandra কনফিগার করুন। এক এক করে প্রতিটি Cassandra নোডের জন্য ধাপগুলি আবার করুন।
  3. ১টি ক্লায়েন্ট অ্যাপ্লিকেশনের লিফ কী/সার্টিফিকেট পেয়ার তৈরি করুন, এতে সই করুন, কীস্টোরে এটি স্টোর করুন এবং mTLS-এর জন্য ক্লায়েন্ট অ্যাপ্লিকেশন কনফিগার করুন। প্রতিটি ক্লায়েন্ট অ্যাপ্লিকেশনে ১টি করে ধাপ আবার করুন। ক্লায়েন্ট অ্যাপ্লিকেশন:
    1. edge-management-server
    2. edge-message-processor
    3. এজ-রাউটার

এইসব ধাপের বিবরণ নিচে দেওয়া হল:

রুট ও ইন্টারমিডিয়েট সার্টিফিকেট সংগ্রহ করা

রুট সার্টিফিকেট ও রুট দ্বারা সাইন করা অন্তর্বর্তী কী/সার্টিফিকেট পেয়ার সংগ্রহ করুন। আপনার সংস্থার CA স্বাক্ষর করা মূল ও মধ্যবর্তী সার্টিফিকেট ব্যবহার করুন অথবা স্ব-স্বাক্ষরিত সার্টিফিকেট তৈরি করুন। ট্রাস্টস্টোরে রুট ও অন্তর্বর্তী সার্টিফিকেট চেইন সেভ করুন। সহায়ক কমান্ডের জন্য পরিশিষ্ট ১ দেখুন। পরবর্তী কমান্ড ধরে নেয় যে আপনার নিম্নলিখিত ফাইলগুলিতে অ্যাক্সেস আছে:

  • intermediate.key - লিফ সার্টিফিকেট সই করার জন্য ইন্টারমিডিয়েট cert-এর কী ফাইল
  • 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

    নোডের নির্দিষ্ট লোকেশনে কীস্টোর ও ট্রাস্টস্টোর ফাইল প্লেস করুন এবং নিশ্চিত করুন যে 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 নোডে উপরের ধাপগুলি এক এক করে রিপিট করুন

ক্লায়েন্ট অ্যাপ্লিকেশন কনফিগার করা

এই বিভাগটি 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
    

    নোডের নির্দিষ্ট লোকেশনে কীস্টোর ও ট্রাস্টস্টোর ফাইল প্লেস করুন এবং নিশ্চিত করুন যে 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 বিকল্প যোগ করা হয়েছে

  6. প্রতিটি ক্লায়েন্ট অ্যাপ্লিকেশনে ১টি করে করে উপরের ধাপগুলি আবার করুন

অপারেশন ও কনফিগারেশন

mTLS প্রয়োগ করা

Cassandra-তে mTLS প্রয়োগ করা না হলে, Cassandra ক্লায়েন্টদের থেকে প্লেনটেক্সট কানেকশন বা এমন ক্লায়েন্টদের থেকে কানেকশন গ্রহণ করে যাদের সাথে এটি সফলভাবে ২-ওয়ে TLS হ্যান্ডশেক পারফর্ম করতে পারে। mTLS এনফোর্সমেন্ট কাজ করার জন্য, প্রথমে Cassandra-তে mTLS কনফিগার করতে হবে। আপনি নিচে উল্লেখ করা ধাপগুলি অনুসরণ করে Cassandra-তে mTLS এনফোর্সমেন্ট সেট করতে পারবেন:

  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 নোডে উপরের ধাপগুলি এক এক করে রিপিট করুন

Cassandra-তে mTLS প্রয়োগ করা হলে, স্ট্যান্ডার্ড Cassandra কোয়েরি টুল cqlsh সরাসরি Cassandra-র সাথে কানেক্ট করতে পারবে না। SSL-এর জন্য cqlsh কনফিগার করতে, নতুন লিফ কী ও সার্টিফিকেট (ক্লায়েন্ট অ্যাপ্লিকেশনের লিফ কী ও সার্টিফিকেটের মতো) তৈরি করুন এবং নিম্নলিখিত কাজগুলি করুন:

  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>
    

Cassandra-তে mTLS প্রয়োগ করা বন্ধ করুন

Cassandra-তে mTLS এনফোর্সমেন্ট বন্ধ করতে, নিচে উল্লেখ করা ধাপগুলি অনুসরণ করুন:

  1. একটি Cassandra নোড বেছে নিন
  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. প্রতিটি Cassandra নোডে উপরের ধাপগুলি এক এক করে রিপিট করুন

নেটিভ mTLS বন্ধ করা

নেটিভ mTLS বন্ধ করা হল একাধিক ধাপের প্রসেস, এটি নেটিভ mTLS চালু করার মতোই। উচ্চ-স্তরের ধাপগুলি হল:

  1. Cassandra-তে 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. প্রতিটি ক্লায়েন্ট অ্যাপ্লিকেশনে #ক থেকে #ঘ পর্যন্ত ধাপগুলি এক এক করে অনুসরণ করুন।
  3. এক এক করে সব Cassandra নোডে mTLS বন্ধ করুন:
    1. একটি Cassandra নোড বেছে নিন।
    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. প্রতিটি Cassandra নোডে #a থেকে #c ধাপগুলি এক এক করে রিপিট করুন।

সার্টিফিকেট রোটেশন

শুধুমাত্র লিফ সার্টিফিকেটের জন্য রোটেশন (একই ইন্টারমিডিয়েট ও রুট সার্টিফিকেট রেখে)

ক্লায়েন্ট অ্যাপ্লিকেশন কনফিগার করুন-এর মতো ধাপ অনুসরণ করা যেতে পারে:

  1. একই ইন্টারমিডিয়েট কী/সার্টিফিকেট ব্যবহার করে কোনও অ্যাপ্লিকেশনের জন্য নতুন লিফ কী/সার্টিফিকেট তৈরি করা
  2. পাসওয়ার্ড ও কীস্টোরের ধরন সহ অ্যাপ্লিকেশনে নতুন লিফ কী/সার্টিফিকেটের পাথ কনফিগার করুন
  3. অ্যাপ্লিকেশন রিস্টার্ট করুন
রুট বা ইন্টারমিডিয়েট সার্টিফিকেটের জন্য রোটেশন

আপনি যদি ইন্টারমিডিয়েট বা রুট সার্টিফিকেট পরিবর্তন করার পরিকল্পনা করে থাকেন, তাহলে এটি একাধিক ধাপের প্রসেস হিসেবে করার জন্য সাজেস্ট করা হয়:

  1. আপনার ক্লাস্টার জুড়ে Cassandra নেটিভ mTLS বন্ধ করুন।
  2. সম্পূর্ণ নতুন লিফ বা অ্যাপ্লিকেশন সার্টিফিকেট তৈরি করতে নতুন রুট ও ইন্টারমিডিয়েট সার্টিফিকেট ব্যবহার করুন।
  3. নতুন কী ও সার্টিফিকেট ব্যবহার করে Cassandra নেটিভ mTLS চালু করতে এইসব ধাপ অনুসরণ করুন।

সাধারণ Apigee অপারেশন

Apigee সফ্টওয়্যার আপগ্রেড করা, Cassandra নোড যোগ করা বা সরানো, ডেটা সেন্টার যোগ করা বা সরানো, Cassandra যাচাইকরণ চালু বা বন্ধ করার মতো সাধারণ Apigee অপারেশন পারফর্ম করতে, নিশ্চিত করুন যে Cassandra-তে mTLS প্রয়োগ করা হয়নি। আপনি 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. উপরে উল্লেখ করা বিষয়ের মতো, আপনার বিভিন্ন অঞ্চলের জন্য একাধিক মূল ও মধ্যবর্তী সার্টিফিকেট সেট থাকতে পারে, কিন্তু সব অঞ্চলের সব ক্লায়েন্ট ও সব অঞ্চলের সব সার্ভারকে কনফিগার করা ট্রাস্টস্টোরে এগুলি যোগ করে সব মূল ও মধ্যবর্তী চেনের ব্যাপারে জানাতে হবে।