समीक्षा
यह लेख दिखाता है कि कमांड-लाइन टूल्स और डेवलपर फ़्रेमवर्क्स को Cato Networks TLS निरीक्षण प्रमाणपत्र पर विश्वास करने के लिए कैसे बनाया जाए, जिससे HTTPS त्रुटियों के बिना काम करता है जबकि ट्रैफिक का निरीक्षण होता है। यह कवर करता है कि कैसे सिस्टम-व्यापी Cato प्रमाणपत्र स्थापित करें और जब वे OS ट्रस्ट स्टोर का उपयोग नहीं करते, तब कैसे विशिष्ट उपकरणों को प्रमाणपत्र की ओर निर्देशित करें।
नीचे दिए गए सभी उदाहरणों में, /path/to/CatoNetworksTrustedRootCA.pem को अपने वातावरण के लिए वास्तविक पथ से बदल दें।
प्रमाणपत्र को सिस्टम-वाइड इंस्टॉल करें (अनुशंसित)
होस्ट ओएस में Cato रूट CA स्थापित करने से अधिकांश ऐप ट्रस्टेड ट्रैफिक को स्वचालित रूप से विश्वास करने की अनुमति मिलती है। आप Cato प्रमाणपत्र कैसे स्थापित करें में वर्णित के अनुसार Cato रूट CA स्थापित कर सकते हैं।
यदि कुछ अपेक्षा के अनुसार काम नहीं करता है, तो आप मैन्युअल रूप से OS ट्रस्ट स्टोर पर Cato रूट CA को जोड़ सकते हैं। Cato प्रमाणपत्र स्थापित करने के बारे में अधिक जानकारी के लिए, संबंधित लेख देखें:
संयुक्त प्रमाणपत्र बंडल (उन उपकरणों के लिए जो ट्रस्ट बंडल को ओवरराइड करते हैं)
कुछ उपकरण CA ट्रस्ट बंडल को ओवरराइड करते हैं बजाय इसे विस्तार करने के, मतलब वे वास्तव में वहां मौजूद सभी प्रमाणपत्रों को हटा देते हैं। इन उपकरणों को सार्वजनिक वेबसाइटों और Cato निरीक्षित ट्रैफिक दोनों पर विश्वास सुनिश्चित करने के लिए, OS ट्रस्टेड रूट प्रमाणपत्रों प्लस Cato रूट CA को मिलाकर एक संयुक्त बंडल बनाएँ।
सिफारिश: Cato रूट 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 "संयुक्त बंडल यहाँ लिखा गया: $dest"आउटपुट पथ: C:\ProgramData\CatoNetworks\TLS\cato_combined_ca.pem
macOS
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 बंडल को Cato CA के साथ जोड़ें।
Debian/Ubuntu:
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 ट्रस्ट स्टोर को नजरअंदाज करते हैं या ऐसे वातावरण में चलते हैं जहां यह उपलब्ध नहीं है। इन मामलों में, उन्हे स्पष्ट रूप से Cato CA या संयुक्त बंडल का उपयोग करने के लिए कॉन्फ़िगर करें।
सामान्य वेरिएबल सेटिंग सिंटैक्स
Linux/macOS:
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या एक स्थायी समाधान के लिए:
setx VARIABLE_NAME "C:\path\to\file" चलाएं और फिर CMD विंडो को पुनः खोलें।
विंडोज़ पावरशेल
$env:VARIABLE_NAME="C:\path\to\file"वर्तमान उपयोगकर्ता के लिए एक स्थायी समाधान के लिए:
setx VARIABLE_NAME "C:\path\to\file"चलाएं और फिर CMD विंडो को पुनः खोलें।डिवाइस के सभी उपयोगकर्ताओं के लिए एक स्थायी समाधान के लिए:
[System.Environment]::SetEnvironmentVariable("VARIABLE_NAME", "C:\path\to\file", "Machine")चलाएं
Python (Requests, AWS CLI, Azure CLI, Gcloud CLI)
Python उपकरण अक्सर certifi का उपयोग करते हैं, जो अपना CA बंडल (OS ट्रस्ट स्टोर से अलग) लाता है।
अनुशंसित सामान्य Python समाधान
macOS या Linux – सेट करें REQUESTS_CA_BUNDLE वेरिएबल को संयुक्त बंडल के लिए (ऊपर निर्देश देखें संयुक्त प्रमाणपत्र बंडल (उन उपकरणों के लिए जो ट्रस्ट बंडल को ओवरराइड करते हैं))।
विंडोज़ – Python को विंडोज ट्रस्ट स्टोर की ओर इंगित करने के लिए
pip install pip-system-certsचलाएं।
टूल-विशिष्ट Python समाधान
केवल macOS/Linux के लिए, आप या तो टूल के certifi बंडल में Cato रूट CA जोड़ सकते हैं, या उसके CA वेरिएबल को संयुक्त बंडल की ओर निर्देशित कर सकते हैं।
Azure CLI (macOS/Linux)
CLI के साथ शिप किये गए certifi बंडल में Cato रूट CA जोड़ें। Cerifi के बंडल स्थान को खोजने के लिए निम्नलिखित कमांड चलाएँ:
$(az --version 2>&1 | awk -F"'" '/Python location/ {print $2}') -m certifiAWS CLI / Boto (MacOS/Linux)
वेरिएबल सेट करें:
AWS_CA_BUNDLE=/path/to/cato_combined_ca.pemया इसे जोड़ें कॉन्फ़िग फाइल (~/.aws/config)
ca_bundle = /path/to/cato_combined_ca.pemGcloud CLI
SDK के साथ शिप किये गए certifi बंडल में Cato रूट CA जोड़ें:
~/google-cloud-sdk/platform/bundledpython*/lib/python*/site-packages/certifi/cacert.pemध्यान दें: पथ इस बात पर निर्भर करता है कि आपने उपकरण कैसे स्थापित किया। यदि आप इन स्थानों पर certifi/cacert.pem नहीं देखते हैं, तो टूल की निर्देशिका में खोजें।
OpenSSL (Curl, Composer, Ruby/Fastlane)
कई उपकरण (जैसे Curl, Composer, और Ruby/Fastlane) OpenSSL पर TLS के लिए निर्भर करते हैं। डिफॉल्ट रूप से, OpenSSL लिनक्स पर सिस्टम CA बंडल पढ़ता है, लेकिन macOS (Homebrew OpenSSL) और Windows पर, यह ओएस ट्रस्ट स्टोर की बजाए अपने CA फाइलों का उपयोग करता है।
अनुशंसित सामान्य OpenSSL समाधान
SSL_CERT_FILE वेरिएबल को संयुक्त बंडल पर सेट करें संयुक्त प्रमाणपत्र बंडल (उन उपकरणों के लिए जो ट्रस्ट बंडल को ओवरराइड करते हैं)।
टूल विशिष्ट OpenSSL समाधान
यदि आवश्यक हो, तो प्रत्येक OpenSSL आधारित उपकरण को संयुक्त बंडल पर इंगित करने के लिए कॉन्फ़िगर करें, या Cato रूट CA को OpenSSL certs निर्देशिका में जोड़ें और c_rehash चलाएं।
Curl
macOS (SecureTransport), Windows (Schannel), और अधिकांश लिनक्स बिल्ड्स (OpenSSL/LibreSSL) पर बिल्ट-इन कर्ल के लिए, किसी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं होती। ये बिल्ड्स पहले से ही ओएस ट्रस्ट स्टोर का उपयोग करते हैं।
यह पुष्टि करने के लिए कि curl किस TLS लाइब्रेरी का उपयोग कर रहा है, curl --version चलाएँ।
उन OpenSSL/LibreSSL builds के लिए जो OS स्टोर का उपयोग नहीं करते हैं, CURL_CA_BUNDLE वेरिएबल को संयुक्त बंडल फाइल की ओर सेट करें (ऊपर बताई गई पद्धति का पालन करें)।
Composer (PHP)
Composer को संयुक्त बंडल का उपयोग करने के लिए कॉन्फ़िगर करें: composer config -g cafile /path/to/cato_combined_ca.pem
Ruby, Bundler, और Fastlane
Ruby/Fastlane को संयुक्त बंडल पर विश्वास करने के लिए कॉन्फ़िगर करें: bundle config --global ssl_ca_cert /path/to/cato_combined_ca.pem
Node.js और npm
Node.js और npm ओएस के आधार पर सर्टिफिकेट स्टोर को अलग-अलग तरीके से हैंडल करते हैं।
विंडोज़ - Node.js अक्सर सिस्टम स्टोर का उपयोग करता है, इसलिए Cato रूट 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 के शीर्ष पर अतिरिक्त CA पर भरोसा करने के लिए कहता है।
npm
npm को एकल CA फ़ाइल के बजाय संयुक्त बंडल की आवश्यकता होती है। npm को निम्नलिखित रूप से कॉन्फ़िगर करें:
npm config set cafile "/path/to/cato_combined_ca.pem"
यह npm को Cato Root CA और सार्वजनिक रूट CA दोनों पर भरोसा करने की गारंटी देता है।
Java (Maven, Gradle, JDBC, आदि...)
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 को संयुक्त बंडल फाइल की ओर सेट करके।
एंड्रॉइड स्टूडियो
एंड्रॉइड स्टूडियो बंडल 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