ম্যানেজমেন্ট API-এর জন্য TLS কনফিগার করা

ডিফল্ট হিসেবে, ম্যানেজমেন্ট API-এর জন্য TLS বন্ধ করা থাকে এবং আপনি ম্যানেজমেন্ট সার্ভার নোডের IP অ্যাড্রেস এবং পোর্ট ৮০৮০ ব্যবহার করে HTTP-এর মাধ্যমে Edge ম্যানেজমেন্ট API অ্যাক্সেস করেন। যেমন:

http://ms_IP:8080

বিকল্প হিসেবে, আপনি ম্যানেজমেন্ট API-তে TLS অ্যাক্সেস কনফিগার করতে পারেন যাতে আপনি এটি এই ফর্ম্যাটে অ্যাক্সেস করতে পারেন:

https://ms_IP:8443

এই উদাহরণে, আপনি পোর্ট 8443 ব্যবহার করার জন্য TLS অ্যাক্সেস কনফিগার করেন। তবে, Edge-এর জন্য সেই পোর্ট নম্বরের প্রয়োজন নেই - আপনি অন্যান্য পোর্ট ভ্যালু ব্যবহার করার জন্য ম্যানেজমেন্ট সার্ভার কনফিগার করতে পারেন। একমাত্র প্রয়োজনীয়তা হল, আপনার ফায়ারওয়াল যেন নির্দিষ্ট পোর্টের মাধ্যমে ট্রাফিককে অনুমতি দেয়।

আপনার ম্যানেজমেন্ট API-তে এবং সেখান থেকে ট্রাফিক এনক্রিপশন নিশ্চিত করতে, /opt/apigee/customer/application/management-server.properties ফাইলে সেটিংস কনফিগার করুন।

TLS কনফিগারেশন ছাড়াও, আপনি management-server.properties ফাইলটি পরিবর্তন করে পাসওয়ার্ড যাচাইকরণ (পাসওয়ার্ডের দৈর্ঘ্য এবং শক্তি) নিয়ন্ত্রণ করতে পারেন।

আপনার TLS পোর্ট খোলা আছে কিনা তা নিশ্চিত করুন

এই বিভাগে বর্ণিত পদ্ধতি ম্যানেজমেন্ট সার্ভারে পোর্ট ৮৪৪৩ ব্যবহার করার জন্য TLS কনফিগার করে। আপনি যে পোর্টই ব্যবহার করুন না কেন, আপনাকে নিশ্চিত করতে হবে যে পোর্টটি ম্যানেজমেন্ট সার্ভারে খোলা আছে। যেমন, এটি খুলতে আপনি নিম্নলিখিত কমান্ড ব্যবহার করতে পারেন:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT --verbose

TLS কনফিগার করুন

আপনার ম্যানেজমেন্ট API-তে আসা ও যাওয়া ট্রাফিকে TLS ব্যবহার কন্ট্রোল করতে /opt/apigee/customer/application/management-server.properties ফাইল এডিট করুন। এই ফাইলটি না থাকলে, এটি তৈরি করুন।

ম্যানেজমেন্ট API-তে TLS অ্যাক্সেস কনফিগার করতে:

  1. আপনার TLS সার্টিফিকেশন এবং ব্যক্তিগত কী সহ keystore JKS ফাইল তৈরি করুন। আরও জানতে এজ অন-প্রিমাইসের জন্য TLS/SSL কনফিগার করা দেখুন।
  2. কিস্টোর JKS ফাইলটি ম্যানেজমেন্ট সার্ভার নোডের একটি ডিরেক্টরিতে কপি করুন, যেমন /opt/apigee/customer/application.
  3. JKS ফাইলের মালিকানা "apigee" ব্যবহারকারীতে পরিবর্তন করুন:
    chown apigee:apigee keystore.jks

    যেখানে keystore.jks হল আপনার কীস্টোর ফাইলের নাম।

  4. নিম্নলিখিত প্রপার্টি সেট করতে /opt/apigee/customer/application/management-server.properties এডিট করুন। সেই ফাইলটি না থাকলে, এটি তৈরি করুন:
    conf_webserver_ssl.enabled=true
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword

    যেখানে keyStore.jks হল আপনার কীস্টোর ফাইল এবং obfuscatedPassword হল আপনার অবফাসকেট করা কীস্টোর পাসওয়ার্ড। ছদ্মবেশী পাসওয়ার্ড তৈরি করা সংক্রান্ত তথ্যের জন্য Edge On Premises-এর জন্য TLS/SSL কনফিগার করা দেখুন।

  5. এই কমান্ড ব্যবহার করে Edge ম্যানেজমেন্ট সার্ভার রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

ম্যানেজমেন্ট API এখন TLS-এর মাধ্যমে অ্যাক্সেস করার সুবিধা দেয়।

Edge API অ্যাক্সেস করতে TLS ব্যবহার করার জন্য New Edge UI কনফিগার করুন

উপরের পদ্ধতিতে, Apigee conf_webserver_http.turn.off=false ছেড়ে দেওয়ার সাজেশন দেয় যাতে নতুন Edge UI, HTTP-এর মাধ্যমে Edge API কল করা চালিয়ে যেতে পারে।

শুধুমাত্র HTTPS-এর মাধ্যমে এইসব কল করার জন্য New Edge UI কনফিগার করতে নিম্নলিখিত পদ্ধতি ব্যবহার করুন:

  1. উপরে যেমন বর্ণনা করা হয়েছে সেই অনুযায়ী ম্যানেজমেন্ট API-তে TLS অ্যাক্সেস কনফিগার করুন।
  2. ম্যানেজমেন্ট API-এর জন্য TLS কাজ করছে কিনা তা কনফার্ম করার পরে, /opt/apigee/customer/application/management-server.properties এডিট করে নিম্নলিখিত প্রপার্টি সেট করুন:
    conf_webserver_http.turn.off=true
  3. নিম্নলিখিত কমান্ডটি এক্সিকিউট করে Edge ম্যানেজমেন্ট সার্ভার রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. HTTPS-এর মাধ্যমে ম্যানেজমেন্ট সার্ভারের সাথে কানেক্ট করার জন্য নতুন Edge UI কনফিগারেশন আপডেট করুন। আপনার New Edge UI কনফিগারেশন ফাইলে নিম্নলিখিত প্রপার্টি সেট করুন:
    APIGEE_PORT_HTTP_MS=port
    MS_SCHEME=https

    যেখানে port হল conf_webserver_ssl.port-এর দ্বারা আগে নির্দিষ্ট করা পোর্ট (যেমন, 8443)।

  5. নতুন Edge UI-তে আপডেট করা কনফিগারেশন প্রয়োগ করুন:
    /opt/apigee/apigee-setup/bin/setup.sh -p ue -f configFile

    New Edge UI কনফিগারেশন ফাইলের ব্যাপারে আরও বিবরণের জন্য, New Edge UI কনফিগার করুন দেখুন। নতুন Edge UI-তে HTTPS অ্যাক্সেস কনফিগার করতে, নতুন Edge UI-এর জন্য TLS কনফিগার করুন দেখুন।

ম্যানেজমেন্ট সার্ভারের জন্য TLS প্রপার্টি

নিম্নলিখিত সারণীতে TLS/SSL-এর সব প্রপার্টি তালিকাভুক্ত করা আছে যা আপনি management-server.properties-এ সেট করতে পারবেন:

প্রপার্টি বিবরণ

conf_webserver_http.port=8080

ডিফল্ট হল ৮০৮০।

conf_webserver_ssl.enabled=false

TLS/SSL চালু/বন্ধ করতে। TLS/SSL চালু (সত্য) থাকলে, আপনাকে ssl.port এবং keystore.path প্রপার্টিও সেট করতে হবে।

conf_webserver_http.turn.off=true

https-এর সাথে http চালু/বন্ধ করতে। আপনি শুধু HTTPS ব্যবহার করতে চাইলে, ডিফল্ট ভ্যালু true হিসেবেই রেখে দিন।

conf_webserver_ssl.port=8443

TLS/SSL পোর্ট।

TLS/SSL চালু (conf_webserver_ssl.enabled=true) থাকলে এটি প্রয়োজন।

conf_webserver_keystore.path=path

আপনার কীস্টোর ফাইলের পাথ।

TLS/SSL চালু থাকলে প্রয়োজন (conf_webserver_ssl.enabled=true)।

conf_webserver_keystore.password=password

এই ফর্ম্যাটে একটি অবফস্কেট করা পাসওয়ার্ড ব্যবহার করুন: OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

ঐচ্ছিক কীস্টোর সার্টিফিকেট এলিয়াস

conf_webserver_keymanager.password=password

আপনার কী ম্যানেজারের পাসওয়ার্ড থাকলে, এই ফর্ম্যাটে পাসওয়ার্ডের অস্পষ্ট ভার্সন লিখুন:

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

আপনার ট্রাস্ট স্টোরের জন্য সেটিংস কনফিগার করুন। আপনি সব TLS/SSL সার্টিফিকেট গ্রহণ করতে চান কিনা তা নির্ধারণ করুন (যেমন, নন-স্ট্যান্ডার্ড ধরনের সার্টিফিকেট গ্রহণ করতে)। ডিফল্ট হল false। আপনার বিশ্বস্ত স্টোরের পাথ দিন এবং এই ফর্ম্যাটে একটি গোপন বিশ্বস্ত স্টোর পাসওয়ার্ড লিখুন:

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

আপনি অন্তর্ভুক্ত বা বাদ দিতে চান এমন কোনও সাইফার স্যুট উল্লেখ করুন। যেমন, আপনি যদি সাইফারে কোনও দুর্বলতা খুঁজে পান, তাহলে আপনি এটি এখানে বাদ দিতে পারেন। একাধিক সাইফার কমা দিয়ে আলাদা করুন।

ব্ল্যাকলিস্ট ব্যবহার করে আপনি যেসব সাইফার সরিয়ে দেন সেগুলি হোয়াইটলিস্টে অন্তর্ভুক্ত যেকোনও সাইফারের চেয়ে বেশি অগ্রাধিকার পায়।

মনে রাখবেন: ডিফল্ট হিসেবে, কোনও ব্ল্যাকলিস্ট বা হোয়াইটলিস্ট নির্দিষ্ট করা না থাকলে, নিম্নলিখিত জাভা রেগুলার এক্সপ্রেশনের সাথে ম্যাচ করা সাইফার ডিফল্ট হিসেবে বাদ দেওয়া হয়।

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

তবে, আপনি যদি ব্ল্যাকলিস্ট নির্দিষ্ট করেন, তাহলে এই ফিল্টার ওভাররাইড করা হয় এবং আপনাকে অবশ্যই প্রতিটি সাইফার আলাদাভাবে ব্ল্যাকলিস্ট করতে হবে।

সাইফার স্যুট ও ক্রিপ্টোগ্রাফি আর্কিটেকচার সম্পর্কে তথ্যের জন্য, JDK 8-এর জন্য Java ক্রিপ্টোগ্রাফি আর্কিটেকচার Oracle প্রোভাইডার ডকুমেন্টেশন দেখুন।

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

ইন্টিজার যা নির্ধারণ করে:

  • একাধিক ক্লায়েন্টের জন্য সেশনের তথ্য স্টোর করার জন্য TLS/SSL সেশন ক্যাশে সাইজ (বাইটে)।
  • TLS/SSL সেশন টাইম-আউট হওয়ার আগে পর্যন্ত কতক্ষণ চলতে পারে (মিলিসেকেন্ডে)।