ক্যাসান্দ্রা নেটিভ mTLS কনফিগার করুন

ভূমিকা

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

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

নেটিভ mTLS বৈশিষ্ট্য

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

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

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

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

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

  2. সমস্ত অ্যাপ্লিকেশন-নির্দিষ্ট (পাতা) কী এবং শংসাপত্রে স্বাক্ষর করতে উপরে থেকে সাধারণ মধ্যবর্তী কী/শংসাপত্র ব্যবহার করুন।

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

  1. একটি ক্যাসান্দ্রা নোড বা ক্লায়েন্ট অ্যাপ্লিকেশনের একটি পাতার শংসাপত্র ঘোরানো তুচ্ছ।
  2. একটি মধ্যবর্তী বা মূল শংসাপত্র ঘোরানো এখনও একটি মোটামুটি জটিল অপারেশন কিন্তু এই ধরনের ঘূর্ণনের ফ্রিকোয়েন্সি পাতার শংসাপত্রের তুলনায় অনেক কম হবে।

বিভিন্ন ব্যক্তিগত ক্লাউড ক্লাস্টার জুড়ে সাধারণ রুট এবং মধ্যবর্তী শংসাপত্রগুলি ব্যবহার করবেন কিনা তা সিদ্ধান্ত নিতে আপনার সংস্থার নিরাপত্তা অনুশীলনগুলি ব্যবহার করুন৷ আপনি বিকল্প শংসাপত্র সেটআপের জন্য পরিশিষ্ট 2 উল্লেখ করতে পারেন।

এই নিবন্ধের অবশিষ্ট ধাপগুলি কী এবং সার্টিফিকেট ডিজাইন করার উপরোক্ত পদ্ধতির বিশদ বিবরণ প্রদান করে।

সীমাবদ্ধতা এবং সতর্কতা

নিম্নলিখিত সীমাবদ্ধতা এই বৈশিষ্ট্য প্রযোজ্য.

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

নেটিভ mTLS সক্ষম করুন৷

উচ্চ স্তরে, নেটিভ mTLS সক্ষম করা একটি 3 ধাপের পদ্ধতি যা নীচে বর্ণিত হয়েছে:

  1. একটি রুট সার্টিফিকেট এবং একটি মধ্যবর্তী কী/শংসাপত্র জোড়া সংগ্রহ করুন।
  2. 1টি ক্যাসান্দ্রা নোডের একটি পাতার কী/শংসাপত্র জোড়া তৈরি করুন, এটিতে স্বাক্ষর করুন, এটি একটি কীস্টোরে সংরক্ষণ করুন এবং ঐচ্ছিক mTLS-এর জন্য Cassandra কনফিগার করুন৷ প্রতিটি ক্যাসান্দ্রা নোড 1 এর জন্য একবারে পদক্ষেপগুলি পুনরাবৃত্তি করুন।
  3. 1 ক্লায়েন্ট অ্যাপ্লিকেশনের একটি পাতার কী/শংসাপত্র জোড়া তৈরি করুন, এটিতে স্বাক্ষর করুন, এটি একটি কীস্টোরে সংরক্ষণ করুন এবং mTLS-এর জন্য ক্লায়েন্ট অ্যাপ্লিকেশন কনফিগার করুন। প্রতিটি ক্লায়েন্ট অ্যাপ্লিকেশনের ধাপগুলি একবারে 1 পুনরাবৃত্তি করুন। ক্লায়েন্ট অ্যাপ্লিকেশন:
    1. প্রান্ত-ব্যবস্থাপনা-সার্ভার
    2. প্রান্ত-বার্তা-প্রসেসর
    3. প্রান্ত-রাউটার

এই পদক্ষেপগুলি নীচে বিশদ বিবরণ দেওয়া হয়েছে:

রুট এবং মধ্যবর্তী শংসাপত্র সংগ্রহ করুন

একটি রুট সার্টিফিকেট এবং রুট দ্বারা স্বাক্ষরিত একটি অন্তর্বর্তী কী/শংসাপত্র জোড়া সংগ্রহ করুন। আপনার প্রতিষ্ঠানের CA স্বাক্ষরিত রুট এবং মধ্যবর্তী শংসাপত্র ব্যবহার করুন বা স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন৷ একটি ট্রাস্টস্টোরে রুট এবং মধ্যবর্তী সার্টিফিকেট চেইন সংরক্ষণ করুন। সহায়ক কমান্ডের জন্য পরিশিষ্ট 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

    কীস্টোর এবং ট্রাস্টস্টোর ফাইলগুলিকে নোডের একটি নির্দিষ্ট স্থানে রাখুন এবং নিশ্চিত করুন যে সেগুলি এপিজি ব্যবহারকারীর দ্বারা অ্যাক্সেসযোগ্য।

    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. ক্যাসান্দ্রা নোড কনফিগার করুন এবং পুনরায় চালু করুন
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  5. প্রতিটি ক্যাসান্দ্রা নোডে একবারে উপরের পদক্ষেপগুলি পুনরাবৃত্তি করুন

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

এই বিভাগটি নিম্নলিখিত ক্লায়েন্ট উপাদানগুলির জন্য প্রযোজ্য যা ক্যাসান্দ্রার সাথে সংযোগ স্থাপন করে:

  • প্রান্ত-ব্যবস্থাপনা-সার্ভার
  • প্রান্ত-বার্তা-প্রসেসর
  • প্রান্ত-রাউটার

  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
    

    কীস্টোর এবং ট্রাস্টস্টোর ফাইলগুলিকে নোডের একটি নির্দিষ্ট স্থানে রাখুন এবং নিশ্চিত করুন যে সেগুলি এপিজি ব্যবহারকারীর দ্বারা অ্যাক্সেসযোগ্য।

    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
    

    কনফিগারেশন ফাইলটি নিশ্চিত করুন এবং অ্যাপিজি ব্যবহারকারীর দ্বারা পঠনযোগ্য

    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. প্রতিটি ক্লায়েন্ট অ্যাপ্লিকেশন 1 একবারে উপরের ধাপগুলি পুনরাবৃত্তি করুন

অপারেশন এবং কনফিগারেশন

mTLS প্রয়োগ করুন

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

  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. ক্যাসান্দ্রা নোড কনফিগার করুন এবং পুনরায় চালু করুন
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  4. প্রতিটি ক্যাসান্দ্রা নোডে একবারে উপরের পদক্ষেপগুলি পুনরাবৃত্তি করুন

একবার ক্যাসান্দ্রায় এমটিএলএস প্রয়োগ করা হলে, স্ট্যান্ডার্ড ক্যাসান্দ্রা ক্যোয়ারী টুল cqlsh সরাসরি ক্যাসান্দ্রার সাথে সংযোগ করতে পারে না। 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 এর প্রয়োগ অক্ষম করুন

ক্যাসান্দ্রায় mTLS প্রয়োগ নিষ্ক্রিয় করতে, নীচের পদক্ষেপগুলি অনুসরণ করুন:

  1. একটি ক্যাসান্দ্রা নোড চয়ন করুন
  2. /opt/apigee/customer/application/cassandra.properties ফাইল তৈরি বা সম্পাদনা করুন। এই ফাইলে নিম্নলিখিত সম্পত্তি যোগ বা সম্পাদনা করুন:
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=true
    

    নিশ্চিত করুন যে ফাইলটি এপিজি ব্যবহারকারীর মালিকানাধীন এবং পাঠযোগ্য

    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    
  3. ক্যাসান্দ্রা নোড কনফিগার করুন এবং পুনরায় চালু করুন
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  4. প্রতিটি ক্যাসান্দ্রা নোডে একবারে উপরের পদক্ষেপগুলি পুনরাবৃত্তি করুন

নেটিভ mTLS অক্ষম করুন

নেটিভ mTLS অক্ষম করা একটি বহু-পদক্ষেপ প্রক্রিয়া, যা নেটিভ mTLS সক্রিয় করার মতো। উচ্চ স্তরের পদক্ষেপগুলি হল:

  1. ক্যাসান্দ্রায় mTLS এর প্রয়োগ অক্ষম করুন (যদি প্রয়োগ করা হয়)
  2. নিম্নলিখিত ক্লায়েন্ট অ্যাপ্লিকেশনগুলির সমস্ত নোডে একের পর এক mTLS অক্ষম করুন:
    • প্রান্ত-ব্যবস্থাপনা-সার্ভার
    • প্রান্ত-বার্তা-প্রসেসর
    • প্রান্ত-রাউটার
    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 অক্ষম করুন:
    1. একটি ক্যাসান্দ্রা নোড চয়ন করুন।
    2. /opt/apigee/customer/application/cassandra.properties ফাইল তৈরি বা সম্পাদনা করুন। এই ফাইলে নিম্নলিখিত সম্পত্তি যোগ বা সম্পাদনা করুন:
      ### Cassandra TLS on CQL connections
      conf_cassandra_client_encryption_enabled=false
      

      নিশ্চিত করুন যে ফাইলটি এপিজি ব্যবহারকারীর মালিকানাধীন এবং পাঠযোগ্য

      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
      
    3. ক্যাসান্দ্রা নোড কনফিগার করুন এবং পুনরায় চালু করুন
    4. apigee-service apigee-cassandra configure
      apigee-service apigee-cassandra restart
      
    5. প্রতিটি ক্যাসান্দ্রা নোডে #a থেকে #c ধাপগুলি পুনরাবৃত্তি করুন, একবারে একটি।

সার্টিফিকেট ঘূর্ণন

শুধুমাত্র লিফ সার্টিফিকেটের জন্য ঘূর্ণন (একই ইন্টারমিডিয়েট এবং রুট সার্টিফিকেট রাখা)

ক্লায়েন্ট অ্যাপ্লিকেশন কনফিগার করার অনুরূপ পদক্ষেপগুলি অনুসরণ করা যেতে পারে:

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

আপনি যদি মধ্যবর্তী বা রুট শংসাপত্র ঘোরানোর পরিকল্পনা করছেন, তবে এটি একটি বহু-পদক্ষেপ প্রক্রিয়া হিসাবে এটি করার সুপারিশ করা হয়:

  1. আপনার ক্লাস্টার জুড়ে Cassandra নেটিভ mTLS অক্ষম করুন
  2. শাখা নতুন পাতা বা অ্যাপ্লিকেশন শংসাপত্র তৈরি করতে নতুন রুট এবং মধ্যবর্তী শংসাপত্র ব্যবহার করুন।
  3. নতুন সেট কী এবং সার্টিফিকেট ব্যবহার করে Cassandra নেটিভ mTLS সক্ষম করতে পদক্ষেপগুলি অনুসরণ করুন৷

জেনারেল এপিজি অপারেশন

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

পরিশিষ্ট 1

একটি স্ব-স্বাক্ষরিত রুট এবং মধ্যবর্তী কী/সার্ট পেয়ার তৈরি করতে এবং এই শংসাপত্রের চেইনটিকে একটি ট্রাস্টস্টোরে যুক্ত করতে এই পরিশিষ্টের পদক্ষেপগুলি অনুসরণ করা যেতে পারে।

স্ব-স্বাক্ষরিত রুট এবং মধ্যবর্তী সার্টিফিকেট তৈরি করুন

# 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 রুট/মধ্যবর্তী শংসাপত্র সেট রয়েছে যা ব্যবহার করে ক্যাসান্দ্রার সমস্ত পাতার শংসাপত্র স্বাক্ষরিত হয়। একইভাবে, সমস্ত ক্লায়েন্ট অ্যাপ্লিকেশনের একটি পৃথক রুট/মধ্যবর্তী সেট থাকতে পারে আবেদনপত্রের পাতার শংসাপত্রে স্বাক্ষর করার জন্য। এই ধরনের সেটআপগুলি কার্যকর কিন্তু উপযুক্ত ট্রাস্টস্টোরে রুট/ইন্টারমিডিয়েট সার্টিফিকেট চেইন যুক্ত করা জড়িত। এই উদাহরণে, Cassandra-এর ট্রাস্টস্টোরগুলিতে ক্লায়েন্টের রুট/ইন্টারমিডিয়েট সার্টিফিকেট থাকা উচিত এবং ক্লায়েন্ট অ্যাপ্লিকেশনগুলির ট্রাস্টস্টোরে Cassandra নোডগুলির রুট/ইন্টারমিডিয়েট চেইন থাকা উচিত।
  3. উপরের মতই, আপনার কাছে বিভিন্ন অঞ্চলের জন্য একাধিক রুট এবং মধ্যবর্তী শংসাপত্র সেট থাকতে পারে তবে সমস্ত অঞ্চলের সমস্ত ক্লায়েন্ট এবং সমস্ত অঞ্চলের সমস্ত সার্ভারকে কনফিগার করা ট্রাস্টস্টোরে যুক্ত করে সমস্ত রুট এবং মধ্যবর্তী চেইন সম্পর্কে সচেতন করতে হবে৷