সারসংক্ষেপ
এই নিবন্ধটি দেখায় কিভাবে কমান্ড-লাইন টুলস এবং ডেভেলপার ফ্রেমওয়ার্কসমূহ ক্যাটো নেটওয়ার্কস TLS ইনস্পেকশন সার্টিফিকেটের উপর বিশ্বাস স্থাপন করতে পারে, যাতে HTTPS নির্ভুলভাবে কাজ করে যখন ট্র্যাফিক পরীক্ষা করা হয়। এটি কভার করে কিভাবে ক্যাটো সার্টিফিকেটকে সিস্টেম-ওয়াইড ইনস্টল করতে হয় এবং নির্দিষ্ট টুলসের জন্য সার্টিফিকেট নির্দেশিত করতে হয় যখন তারা OS ট্রাস্ট স্টোর ব্যবহার করে না।
নীচের সব উদাহরণগুলিতে, /path/to/CatoNetworksTrustedRootCA.pem এর পরিবর্তে আপনার পরিবেশের জন্য সঠিক পথ ব্যবহার করুন।
সার্টিফিকেট সিস্টেম-ওয়াইড ইনস্টল করুন (প্রস্তাবিত)
হোস্ট OS এ ক্যাটো রুট CA ইনস্টল করা বেশিরভাগ অ্যাপকে দ্বিচিন্ত্রিত ট্রাফিক স্বতঃসিদ্ধ করতে দেবে। ক্যাটো রুট CA ইনস্টল করার পদ্ধতিটি ক্যাটো সার্টিফিকেট ইনস্টল করার পদ্ধতি উল্লেখ করে।
যদি কিছু প্রত্যাশিত মত কাজ না করে, আপনি ম্যানুয়ালি OS ট্রাস্ট স্টোরে ক্যাটো রুট CA যোগ করতে পারেন। ক্যাটো সার্টিফিকেট ইনস্টল করার বিষয়ে আরও তথ্যের জন্য প্রাসঙ্গিক নিবন্ধটি দেখুন:
সংযুক্ত সার্টিফিকেট বান্ডল (যেসব টুলগুলি ট্রাস্ট বান্ডল ওভাররাইড করে তাদের জন্য)
কিছু টুল CA ট্রাস্ট বান্ডলকে দীর্ঘায়িত করার পরিবর্তে ওভাররাইড করে, যার মানে তারা পূর্ববর্তী সমস্ত সার্টিফিকেট মুছে দেয়। এই টুলগুলিকে যাতে পাবলিক ওয়েবসাইট এবং ক্যাটো-পরীক্ষিত ট্রাফিক উভয়কেই বিশ্বাস করতে পারে, তা নিশ্চিত করার জন্য একটি সম্মিলিত বান্ডল তৈরি করুন যা OS ট্রাস্টেড রুট সার্টিফিকেটের সাথে ক্যাটো রুট CA অন্তর্ভুক্ত করে।
প্রস্তাবনা: সিস্টেম স্টোরে ক্যাটো রুট CA ইনস্টল করুন। একটি সম্মিলিত বান্ডল শুধুমাত্র সেই টুলগুলির জন্য ব্যবহার করুন যেগুলির জন্য একটি একক CA ফাইল প্রয়োজন।
রক্ষণাবেক্ষণ টিপ: সময়ে সময়ে সম্মিলিত বান্ডল পুনর্নির্মাণ করুন (উদাহরণস্বরূপ, মাসিক বা OS ট্রাস্ট আপডেটের পরে)।
Windows (PowerShell)
# উচ্চতর পাওয়ারশেলে চালান
$dest="$env:ProgramData\CatoNetworks\TLS\cato_combined_ca.pem"; $destDir=Split-Path $dest; New-Item -ItemType Directory -Force -Path $destDir | Out-Null; Get-ChildItem Cert:\CurrentUser\Root, Cert:\LocalMachine\Root, Cert:\CurrentUser\CA, Cert:\LocalMachine\CA | Sort-Object Thumbprint -Unique | ForEach-Object { "-----BEGIN CERTIFICATE-----"; [System.Convert]::ToBase64String($_.RawData,'InsertLineBreaks'); "-----END CERTIFICATE-----"; "" } | Out-File -Encoding ascii $dest; Write-Host "Combined bundle written to: $dest"আউটপুট পথ: C:\ProgramData\CatoNetworks\TLS\cato_combined_ca.pem
ম্যাকওএস
sudo mkdir -p "/Library/Application Support/CatoNetworks/TLS"
security find-certificate -a -p \
/System/Library/Keychains/SystemRootCertificates.keychain \
/Library/Keychains/System.keychain \
> /tmp/cato_combined_ca.pem && \
sudo install -m 0644 /tmp/cato_combined_ca.pem \
"/Library/Application Support/CatoNetworks/TLS/cato_combined_ca.pem"আউটপুট পথ: /Library/Application Support/CatoNetworks/TLS/cato_combined_ca.pem
লিনাক্স
OS বান্ডল এবং ক্যাটো CA সংযুক্ত করে একটি একক ফাইল তৈরির জন্য সংযুক্ত করুন।
ডেবিয়ান/উবুন্টু:
sudo bash -c 'cat /etc/ssl/certs/ca-certificates.crt > /etc/ssl/certs/cato_combined_ca.pem'আউটপুট পথ: /etc/ssl/certs/cato_combined_ca.pem
RHEL/CentOS/Alma/Rocky:
sudo bash -c 'cat /etc/pki/tls/certs/ca-bundle.crt > /etc/pki/tls/certs/cato_combined_ca.pem'আউটপুট পথ: /etc/pki/tls/certs/cato_combined_ca.pem
টুল নির্দিষ্ট কনফিগারেশন
কিছু টুল OS ট্রাস্ট স্টোর উপেক্ষা করে বা এমন পরিবেশে চলে যেখানে এটি উপলব্ধ নয়। এই ক্ষেত্রে, স্পষ্টভাবে তাদের ক্যাটো CA বা সম্মিলিত বান্ডল ব্যবহার করার জন্য কনফিগার করুন।
সাধারণ ভেরিয়েবল সেটিং সিনট্যাক্স
লিনাক্স/ম্যাকওএস:
export VARIABLE_NAME=/path/to/fileঅথবা একটি স্থায়ী সমাধানের জন্য:
echo 'export VARIABLE_NAME=/path/to/file' >> ~/.zshrc অথবা ~/.bashrc
source ~/.zshrc অথবা ~/.bashrcউইন্ডোজ CMD
set VARIABLE_NAME=C:\path\to\fileঅথবা একটি স্থায়ী সমাধানের জন্য:
Run setx VARIABLE_NAME "C:\path\to\file" এবং তারপর CMD উইন্ডো পুনরায় খুলুন।
উইন্ডোজ পাওয়ারশেল
$env:VARIABLE_NAME="C:\path\to\file"বর্তমান ব্যবহারকারীর জন্য একটি স্থায়ী সমাধান:
Run
setx VARIABLE_NAME "C:\path\to\file"এবং তারপর CMD উইন্ডো পুনরায় খুলুন।ডিভাইসের সব ব্যবহারকারীর জন্য একটি স্থায়ী সমাধান:
[System.Environment]::SetEnvironmentVariable("VARIABLE_NAME", "C:\path\to\file", "Machine")চালান
পাইথন (রিকোয়েস্টস, AWS CLI, Azure CLI, Gcloud CLI)
পাইথন টুলগুলি প্রায়ই সার্টিফি ব্যবহার করে, যা তার নিজের CA বান্ডল নিয়ে আসে (OS ট্রাস্ট স্টোর থেকে আলাদা)।
সামান্য পাইথন ফিক্স প্রস্তাবিত
ম্যাকওএস বা লিনাক্স – রিকোয়েস্টস_CA_BUNDLE ভেরিয়েবলটিকে সম্মিলিত বান্ডলে সেট করুন (উপরের সম্মিলিত সার্টিফিকেট বান্ডল (যেসব টুলগুলি ট্রাস্ট বান্ডল ওভাররাইড করে তাদের জন্য) নির্দেশাবলী দেখুন)।
উইন্ডোজ – পাইথনকে সরাসরি উইন্ডোজ ট্রাস্ট স্টোর ব্যবহার করার জন্য
pip install pip-system-certsচালান।
টুল-নির্দিষ্ট পাইথন ফিক্স
শুধু ম্যাকওএস/লিনাক্সের জন্য, আপনি টুলের সার্টিফি বান্ডলে ক্যাটো রুট CA যোগ করতে পারেন, অথবা এর CA ভেরিয়েবলকে সম্মিলিত বান্ডলে পয়েন্ট করতে পারেন।
Azure CLI (ম্যাকওএস/লিনাক্স)
ক্যাটো রুট CA CLI এর সাথে প্রেরিত সার্টিফি বান্ডলের সাথে যোগ করুন। সার্টিফির বান্ডল অবস্থান পেতে, নিচের কমান্ডটি চালান:
$(az --version 2>&1 | awk -F"'" '/Python location/ {print $2}') -m certifiAWS CLI / Boto (ম্যাকOS/লিনাক্স)
ভেরিয়েবল সেট করুন:
AWS_CA_BUNDLE=/path/to/cato_combined_ca.pemঅথবা এই লাইনটি কনফিগ ফাইলে (~/.aws/config) যুক্ত করুন।
ca_bundle = /path/to/cato_combined_ca.pemGcloud CLI
SDK এর সাথে প্রেরিত সার্টিফি বান্ডলে ক্যাটো রুট CA যোগ করুন:
~/google-cloud-sdk/platform/bundledpython*/lib/python*/site-packages/certifi/cacert.pemমন্তব্য: পথগুলি আপনি যেভাবে টুলটি ইনস্টল করেছেন তার উপর নির্ভর করে পরিবর্তিত হতে পারে। যদি এই স্থানগুলিতে certifi/cacert.pem দেখতে না পান, তাহলে টুলের ডিরেক্টরির ভিতরে অনুসন্ধান করুন।
OpenSSL (কার্ল, কম্পোজার, রুবি/ফাস্টলেন)
অনেক টুল (যেমন কার্ল, কম্পোজার, এবং রুবি/ফাস্টলেন) TLS এর জন্য OpenSSL এ নির্ভরশীল। ডিফল্টভাবে, OpenSSL লিনাক্সে সিস্টেম CA বান্ডল পড়ে, কিন্তু ম্যাকওএস (হোমব্রিউ OpenSSL) এবং উইন্ডোজ এ, এটি নিজস্ব CA ফাইলগুলি ব্যবহার করে OS ট্রাস্ট স্টোরের পরিবর্তে।
সাধারণ OpenSSL ফিক্স প্রস্তাবিত
SSL_CERT_FILE ভেরিয়েবলটি সম্মিলিত বান্ডল এ সেট করুন।
টুল নির্দিষ্ট OpenSSL ফিক্স
যদি প্রয়োজন হয়, প্রতিটি OpenSSL ভিত্তিক টুলের কনফিগার করুন যাতে সম্মিলিত বান্ডল নির্দেশিত হয়, অথবা OpenSSL সার্টিফিকেট ডিরেক্টরিতে ক্যাটো রুট CA যোগ করুন এবং c_rehash চালান।
কার্ল
ম্যাকওএস (সিকিউরট্রান্সপোর্ট), উইন্ডোজ (শ্যাননেল), এবং বেশিরভাগ লিনাক্স বিল্ড (OpenSSL/LibreSSL) এ বিল্ট-ইন কার্ল জন্য, অতিরিক্ত কনফিগারেশন প্রয়োজন হয় না। এই বিল্ডগুলি ইতিমধ্যে OS ট্রাস্ট স্টোর ব্যবহার করে।
কার্ল কোন TLS লাইব্রেরি ব্যবহার করছে তা নিশ্চিত করতে, চালান: curl --version
OpenSSL/LibreSSL বিল্ডগুলির জন্য যা OS স্টোর ব্যবহার করে না, CURL_CA_BUNDLE ভেরিয়েবলটিকে সম্মিলিত বান্ডল ফাইল নির্দেশ করতে স্পষ্টভাবে সেট করুন (উপস্থাপিত সিনট্যাক্স ব্যবহার করে)।
কম্পোজার (PHP)
সম্মিলিত বান্ডল ব্যবহার করতে কম্পোজার কনফিগার করুন: composer config -g cafile /path/to/cato_combined_ca.pem
রুবি, বান্ডলার, এবং ফাস্টলেন
সম্মিলিত বান্ডলকে বিশ্বাস করতে রুবি/ফাস্টলেন কনফিগার করুন: bundle config --global ssl_ca_cert /path/to/cato_combined_ca.pem
নোড.জেএস এবং npm
নোড.জেএস এবং npm অপারেটিং সিস্টেমের উপর নির্ভর করে সার্টিফিকেট স্টোরগুলি ভিন্নভাবে পরিচালনা করে।
উইন্ডোজ – নোড.জেএস প্রায়শই সিস্টেম স্টোর ব্যবহার করে, তাই ক্যাটো রুট CA সিস্টেমে-ওয়াইড ইনস্টল করা সাধারণত যথেষ্ট।
Linux/macOS – Node.js সাধারণত তার নিজস্ব CA বান্ডেল ব্যবহার করে, যা Cato Root CA অন্তর্ভুক্ত নয়।
Node.js
যদি আপনি TLS ত্রুটির সম্মুখীন হন, Cato Root CA বিশ্বাস করতে Node.js কনফিগার করুন:
NODE_EXTRA_CA_CERTS ভেরিয়েবলটি Cato Root CA ফাইল নির্দেশ করার জন্য সেট করুন (মিলিত বান্ডেল নয়)।
export NODE_EXTRA_CA_CERTS=/path/to/CatoNetworksTrustedRootCA.pem
এই ভেরিয়েবলটি Node.js কে অন্তর্নির্মিতগুলির উপরে অতিরিক্ত CA বিশ্বাস করতে বলে।
npm
npm একটি একক CA ফাইলের পরিবর্তে মিলিত বান্ডেল প্রয়োজন। npm কনফিগার করুন নিম্নলিখিতভাবে:
npm config set cafile "/path/to/cato_combined_ca.pem"
এটি নিশ্চিত করে যে npm Cato Root CA এবং পাবলিক রুট CA উভয়কেই বিশ্বাস করে।
Java (Maven, Gradle, JDBC, etc...)
Java তার নিজস্ব cacerts নামক ট্রাস্ট স্টোর ফাইল ব্যবহার করে। TLS পরিদর্শন সক্রিয় করতে, এই স্টোরে Cato Root CA আমদানি করুন।
cacerts এর ডিফল্ট পাসওয়ার্ড হল changeit।
Linux/macOS
sudo keytool -importcert -noprompt \
-alias cato-root-ca \
-file /path/to/CatoNetworksTrustedRootCA.pem \
-keystore $JAVA_HOME/lib/security/cacerts \
-storepass changeitWindows (PowerShell)
keytool -importcert -noprompt `
-alias cato-root-ca `
-file "C:\path\to\CatoNetworksTrustedRootCA.pem" `
-keystore "C:\Program Files\Java\jdk-17\lib\security\cacerts" `
-storepass changeitসমস্ত Java ভিত্তিক সরঞ্জাম (যেমন Maven, Gradle, JDBC ড্রাইভার, Salesforce Apex Data Loader) Cato CA বিশ্বাস করবে একবার এটি cacerts স্টোরে যোগ হওয়ার পর।
Docker
Docker দুটি অংশ নিয়ে গঠিত: হোস্টের উপরে ইঞ্জিন/ডেমন এবং যেকোনো ইমেজ/কন্টেইনার।
Docker ইঞ্জিন হোস্ট OS ট্রাস্ট স্টোর ব্যবহার করে, তাই সিস্টেম-জুড়ে Cato Root CA ইনস্টল করা যথেষ্ট।
ইমেজ এর জন্য, আপনাকে কন্টেইনারে Cato Root CA আমদানি করতে হবে।
Debian/Ubuntu-ভিত্তিক ইমেজসমূহ:
COPY CatoNetworksTrustedRootCA.pem /usr/local/share/ca-certificates/cato-root-ca.crt
RUN update-ca-certificatesRHEL/CentOS-ভিত্তিক ইমেজসমূহ:
COPY CatoNetworksTrustedRootCA.pem /etc/pki/ca-trust/source/anchors/
RUN update-ca-trustএটি নিশ্চিত করে যে কন্টেইনারের ভিতরের অ্যাপ্লিকেশনগুলো Cato পরিদর্শিত TLS ট্রাফিকের উপর বিশ্বাস রাখতে পারে।
Go
Go তার নিজের TLS বাস্তবায়ন রয়েছে, তবে ডিফল্টরূপে, এটি OS ট্রাস্ট স্টোরের উপর নির্ভর করে। সিস্টেম-জুড়ে Cato Root CA ইনস্টল করা সাধারণত যথেষ্ট।
কিছু ক্ষেত্রে (উদাহরণস্বরূপ, CI/CD পাইপলাইন বা কন্টেইনারে), আপনাকে ট্রাস্ট কনফিগারেশনটি স্পষ্টতই ওভাররাইড করতে হতে পারে, SSL_CERT_FILE ভেরিয়েবলটি মিলিত বান্ডেল ফাইলের দিকে নির্দেশ করে সেট করার মাধ্যমে।
Android Studio
Android Studio তার বান্ডেল JDK এর ভিতরে নিজস্ব cacerts ট্রাস্ট স্টোর ব্যবহার করে। TLS পরিদর্শন সক্রিয় করতে, সেই স্টোরে Cato Root CA আমদানি করুন। ডিফল্ট পাসওয়ার্ড হল changeit।
Linux/macOS
sudo keytool -importcert -noprompt \
-alias cato-root-ca \
-file /path/to/CatoNetworksTrustedRootCA.pem \
-keystore $ANDROID_STUDIO_JDK/lib/security/cacerts \
-storepass changeitWindows (PowerShell)
keytool -importcert -noprompt `
-alias cato-root-ca `
-file "C:\path\to\CatoNetworksTrustedRootCA.pem" `
-keystore "C:\Program Files\Android\Android Studio\jre\lib\security\cacerts" `
-storepass changeitGit
Git সাধারণত OS ট্রাস্ট স্টোর ব্যবহার করে। যদি Cato Root CA সিস্টেম-জুড়ে ইনস্টল করা থাকে, কোনও অতিরিক্ত কনফিগারেশন প্রয়োজন নেই।
যদি Git Cato Root CA বিশ্বাস করতে ব্যর্থ হয়, তবে এটি মিলিত বান্ডেল ব্যবহার করতে স্পষ্টতই কনফিগার করুন:
git config --global http.sslCAInfo /path/to/cato_combined_ca.pem