यह लेख दिखाता है कि कमांड-लाइन टूल्स और डेवलपर फ़्रेमवर्क्स को 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 ट्रस्ट अद्यतन के बाद)।
# एलेवेटेड पावरशेल में चलाएं
$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
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 उपकरण अक्सर certifi का उपयोग करते हैं, जो अपना CA बंडल (OS ट्रस्ट स्टोर से अलग) लाता है।
- macOS या Linux – संयुक्त बंडल में REQUESTS_CA_BUNDLE वेरिएबल सेट करें (ऊपर दी गई निर्देश संयुक्त प्रमाणपत्र बंडल (उन उपकरणों के लिए जो ट्रस्ट बंडल को ओवरराइड करते हैं)).
- विंडोज़ – Python को विंडोज ट्रस्ट स्टोर का सीधे उपयोग करवाने के लिए
pip install pip-system-certsचलाएं।
केवल 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 certifi
AWS CLI / Boto (MacOS/Linux)
वेरिएबल सेट करें:
AWS_CA_BUNDLE=/path/to/cato_combined_ca.pem
या इसे कॉन्फ़िग फाइल (~/.aws/config) में जोड़ें
ca_bundle = /path/to/cato_combined_ca.pem
Gcloud CLI
SDK के साथ शिप किये गए certifi बंडल में Cato रूट CA जोड़ें:
~/google-cloud-sdk/platform/bundledpython*/lib/python*/site-packages/certifi/cacert.pem
ध्यान दें: पथ इस बात पर निर्भर करता है कि आपने उपकरण कैसे स्थापित किया। यदि आप इन स्थानों पर certifi/cacert.pem नहीं देखते हैं, तो टूल की निर्देशिका में खोजें।
कई उपकरण (जैसे Curl, Composer, और Ruby/Fastlane) OpenSSL पर TLS के लिए निर्भर करते हैं। डिफॉल्ट रूप से, OpenSSL लिनक्स पर सिस्टम CA बंडल पढ़ता है, लेकिन macOS (Homebrew OpenSSL) और Windows पर, यह ओएस ट्रस्ट स्टोर की बजाए अपने CA फाइलों का उपयोग करता है।
SSL_CERT_FILE वेरिएबल को संयुक्त बंडल पर सेट करें।
यदि आवश्यक हो, तो प्रत्येक OpenSSL-आधारित उपकरण को संयुक्त बंडल की ओर संकेत करने के लिए कॉन्फ़िगर करें, या OpenSSL certs निर्देशिका में Cato रूट CA जोड़ें और c_rehash चलाएं।
Curl
macOS (SecureTransport), Windows (Schannel), और अधिकांश लिनक्स बिल्ड्स (OpenSSL/LibreSSL) पर बिल्ट-इन कर्ल के लिए, किसी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं होती। ये बिल्ड्स पहले से ही ओएस ट्रस्ट स्टोर का उपयोग करते हैं।
यह पुष्टि करने के लिए कि कर्ल किस TLS लाइब्रेरी का उपयोग कर रहा है, curl --version चलाएं।
उन OpenSSL/LibreSSL बिल्ड्स के लिए जो 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 अक्सर सिस्टम स्टोर का उपयोग करता है, इसलिए Cato रूट CA को सिस्टम-वाइड इंस्टॉल करना आमतौर पर पर्याप्त होता है।
- Linux/macOS - Node.js आमतौर पर अपने स्वयं के CA बंडल का उपयोग करता है, जिसमें Cato Root CA शामिल नहीं होता है।
यदि आपको 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 पर भरोसा करने के लिए कहता है।
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 changeit
Windows (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 इंजन होस्ट OS ट्रस्ट स्टोर का उपयोग करता है, इसलिए Cato Root CA को सिस्टम-व्यापी तरीके से इंस्टॉल करना पर्याप्त है।
- इमेजेस के लिए, आपको Cato Root CA को कंटेनर में आयात करना होगा।
Debian/Ubuntu-आधारित इमेजेस:
COPY CatoNetworksTrustedRootCA.pem /usr/local/share/ca-certificates/cato-root-ca.crt
RUN update-ca-certificates
RHEL/CentOS-आधारित इमेजेस:
COPY CatoNetworksTrustedRootCA.pem /etc/pki/ca-trust/source/anchors/
RUN update-ca-trust
यह सुनिश्चित करता है कि कंटेनर के अंदर के अनुप्रयोग Cato-परीक्षित TLS ट्रैफ़िक पर भरोसा कर सकते हैं।
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 changeit
Windows (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 changeit
Git आमतौर पर OS ट्रस्ट स्टोर का उपयोग करता है। यदि Cato Root CA सिस्टम-व्यापी इंस्टॉल है, तो अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं होगी।
यदि Git Cato Root CA पर भरोसा करने में विफल रहता है, तो इसे संयुक्त बंडल का उपयोग करने के लिए स्पष्ट रूप से कॉन्फ़िगर करें:
git config --global http.sslCAInfo /path/to/cato_combined_ca.pem
0 टिप्पणियां
लेख टिप्पणियों के लिए उपलब्ध नहीं है.