CLI उपकरणों और डेवलपर फ्रेमवर्क्स को Cato TLS निरीक्षण के साथ काम करने के लिए कॉन्फ़िगर करना

अवलोकन

यह लेख दिखाता है कि कमांड-लाइन टूल्स और डेवलपर फ़्रेमवर्क्स को 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

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 समाधान

टूल-विशिष्ट 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 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 नहीं देखते हैं, तो टूल की निर्देशिका में खोजें।

OpenSSL (Curl, Composer, Ruby/Fastlane)

कई उपकरण (जैसे Curl, Composer, और Ruby/Fastlane) OpenSSL पर TLS के लिए निर्भर करते हैं। डिफॉल्ट रूप से, OpenSSL लिनक्स पर सिस्टम CA बंडल पढ़ता है, लेकिन macOS (Homebrew OpenSSL) और Windows पर, यह ओएस ट्रस्ट स्टोर की बजाए अपने CA फाइलों का उपयोग करता है।

अनुशंसित सामान्य OpenSSL समाधान

SSL_CERT_FILE वेरिएबल को संयुक्त बंडल पर सेट करें।

टूल विशिष्ट OpenSSL समाधान

यदि आवश्यक हो, तो प्रत्येक 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 और 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 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 दो भागों से बना है: होस्ट पर इंजन/डेमन और कोई भी इमेज/कंटेनर्स।

  • 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

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

Git आमतौर पर OS ट्रस्ट स्टोर का उपयोग करता है। यदि Cato Root CA सिस्टम-व्यापी इंस्टॉल है, तो अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं होगी।

यदि Git Cato Root CA पर भरोसा करने में विफल रहता है, तो इसे संयुक्त बंडल का उपयोग करने के लिए स्पष्ट रूप से कॉन्फ़िगर करें:

git config --global http.sslCAInfo /path/to/cato_combined_ca.pem

क्या यह लेख उपयोगी था?

1 में से 0 के लिए उपयोगी रहा

0 टिप्पणियां