توضح هذه المقالة كيفية جعل أدوات السطر الأوامر وإطارات عمل المطورين تثق بشهادة فحص TLS من شبكات Cato، بحيث يعمل HTTPS بدون أخطاء أثناء فحص حركة المرور. يغطي كيفية تثبيت شهادة كاتو على مستوى النظام وكيفية توجيه الأدوات المحددة نحو الشهادة عندما لا تستخدم متجر الثقة في نظام التشغيل.
في جميع الأمثلة أدناه، استبدل /path/to/CatoNetworksTrustedRootCA.pem بالمسار الفعلي لبيئتك.
يتيح تثبيت شهادة الجذر من كاتو في نظام التشغيل المضيف لمعظم التطبيقات الثقة التلقائية في حركة المرور المفحوصة. يمكنك تثبيت شهادة الجذر من كاتو كما هو موصوف في كيفية تثبيت شهادة كاتو.
إذا لم يعمل شيء كما هو متوقع، يمكنك إضافة شهادة الجذر من كاتو يدويًا إلى متجر الثقة في نظام التشغيل. لمزيد من المعلومات حول تثبيت شهادة كاتو، راجع المقالة ذات الصلة:
بعض الأدوات تتجاوز حزمة الثقة لـ CA بدلاً من تمديدها، مما يعني أنها تزيل فعليًا جميع الشهادات التي كانت موجودة من قبل. لضمان ثقة هذه الأدوات في كلا الموقعين العامين وحركة المرور المفحوصة من قبل كاتو، أنشئ حزمة مدمجة تتضمن شهادات الجذر الموثوقة لنظام التشغيل بالإضافة إلى شهادة الجذر من كاتو.
توصية: قم بتثبيت شهادة الجذر من كاتو في متجر النظام. استخدم حزمة مدمجة فقط للأدوات التي تتطلب ملف CA واحد.
نصيحة صيانة: أعد بناء الحزمة المدمجة بشكل دوري (مثلاً، شهريًا أو بعد تحديثات ثقة نظام التشغيل).
# قم بالتشغيل في 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
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
دمج حزمة نظام التشغيل مع شهادة كاتو لإنتاج ملف واحد.
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
بعض الأدوات تتجاهل متجر الثقة لنظام التشغيل أو تعمل في بيئات لا يتوفر فيها متجر الثقة. في هذه الحالات، قُم بتكوينها صراحة لاستخدام شهادة كاتو أو الحزمة المدمجة.
لينكس/macOS:
export VARIABLE_NAME=/path/to/file
أو للحل الدائم:
echo 'export VARIABLE_NAME=/path/to/file' >> ~/.zshrc أو ~/.bashrc
source ~/.zshrc أو ~/.bashrc
Windows CMD
set VARIABLE_NAME=C:\path\to\file
أو للحل الدائم:
شغّل setx VARIABLE_NAME "C:\path\to\file" ثم أعد فتح نافذة CMD.
Windows PowerShell
$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")
غالبًا ما تستخدم أدوات بايثون certifi، التي تحتوي على حزمة CA الخاصة بها (منفصلة عن متجر الثقة لنظام التشغيل).
- macOS أو لينكس - عيّن المتغير REQUESTS_CA_BUNDLE على الحزمة المدمجة (التعليمات مذكورة أعلاه في حزمة الشهادات المدمجة (للأدوات التي تتجاوز حزمة الثقة)).
- ويندوز - شغل
pip install pip-system-certsلجعل بايثون يستخدم متجر الثقة الخاص بويندوز مباشرة.
فقط لـ macOS/Linux، يمكنك إما ربط شهادة الجذر من كاتو بحزمة certifi للأداة، أو توجيه متغير CA الخاص بها إلى الحزمة المدمجة.
Azure CLI (macOS/Linux)
أضف شهادة الجذر من كاتو إلى حزمة certifi المرفقة بالواجهة. لعثور على موقع حزمة 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
أضف شهادة الجذر من كاتو إلى حزمة certifi المرفقة مع SDK:
~/google-cloud-sdk/platform/bundledpython*/lib/python*/site-packages/certifi/cacert.pem
ملاحظة: قد تختلف المسارات بناءً على كيفية تثبيت الأداة. إذا لم ترَ certifi/cacert.pem في هذه المواقع، ابحث داخل دليل الأداة.
تعتمد العديد من الأدوات (مثل Curl وComposer وRuby/Fastlane) على OpenSSL للحصول على TLS. بشكل افتراضي، يقرأ OpenSSL حزمة CA الخاصة بالنظام على Linux، ولكن على macOS (Homebrew OpenSSL) وWindows، يستخدم ملفات CA الخاصة به بدلاً من متجر الثقة لأنظمة التشغيل.
عيّن المتغير SSL_CERT_FILE إلى الحزمة المدمجة.
إذا لزم الأمر، قم بتكوين كل أداة تعتمد على OpenSSL للإشارة إلى الحزمة المدمجة، أو أضف شهادة الجذر من كاتو إلى دليل شهادات OpenSSL وشغّل c_rehash.
Curl
لـ curl المدمج في macOS (SecureTransport)، Windows (Schannel)، ومعظم إصدارات Linux (OpenSSL/LibreSSL)، لا يلزم تكوين إضافي. تستخدم هذه الإصدارات بالفعل متجر الثقة لأنظمة التشغيل.
لتأكيد أياً من مكتبة TLS يستخدمها curl، شغّل: curl --version
بالنسبة إلى إصدارات OpenSSL/LibreSSL التي لا تستخدم متجر نظام التشغيل، قم بتعيين المتغير CURL_CA_BUNDLE صراحةً للإشارة إلى ملف الحزمة المدمجة (باستخدام الصيغة الموضحة أعلاه).
Composer (PHP)
قم بتكوين Composer لاستخدام الحزمة المدمجة: composer config -g cafile /path/to/cato_combined_ca.pem
روبي، Bundler، وFastlane
قم بتكوين Ruby/Fastlane للثقة في الحزمة المدمجة: bundle config --global ssl_ca_cert /path/to/cato_combined_ca.pem
يتعامل Node.js و npm مع متاجر الشهادات بشكل مختلف يعتمد على نظام التشغيل.
- ويندوز - غالباً ما يستخدم Node.js متجر النظام، لذا فإن تثبيت شهادة الجذر من كاتو على مستوى النظام عادةً ما يكون كافياً.
- Linux/macOS - عادةً ما يستخدم Node.js حزمه CA الخاصة به، والتي لا تتضمن Cato Root 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 المحرك مستودع الثقة للنظام المضيف، لذا فإن تثبيت 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
يضمن ذلك أن التطبيقات داخل الحاوية تستطيع أن تثق في حركة TLS المفحوصة من Cato.
لـ Go تطبيق TLS الخاص به، ولكن بشكل افتراضي، يعتمد على مستودع الثقة بالنظام. عادةً ما يكون تثبيت Cato Root CA على مستوى النظام كافيًا.
في بعض الحالات (على سبيل المثال، في خطوط CI/CD أو الحاويات)، قد تحتاج إلى تعديل تكوين الثقة بشكل صريح من خلال إعداد المتغير SSL_CERT_FILE للإشارة إلى ملف الحزمة المدمجة.
يستخدم Android Studio مستودع الثقة الخاص به داخل JDK المضمّن. لتمكين فحص 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
لا توجد تعليقات
المقال مغلق أمام التعليقات.