⁦CA⁩ وإدارة الثقة

إنشاء سلطات شهادات محلية، وإدارة دورة حياتها، وتثبيتها في مخازن ثقة النظام و⁦Firefox⁩ و⁦JVM⁩ و⁦Windows⁩. هذا أساس ⁦PKI⁩ الخاصة بـ⁦Elide⁩ — كل شيء آخر (⁦generate⁩، ⁦trust⁩، ⁦verify⁩) يُبنى فوق ⁦CA⁩ التي تُنشئها هنا.

---

إنشاء ⁦CA⁩

bash
 elide crt ca

ينشئ هذا سلطة شهادات ⁦ECDSA P-256⁩ باسم "⁦Elide Local CA⁩" بفترة صلاحية 10 سنوات ويحفظها في دليل ⁦PKI⁩ الخاص بالمنصة (عادةً ⁦~/.local/share/elide/pki/ca/⁩ على ⁦Linux⁩). يمكن لـ⁦CA⁩ بعد ذلك توقيع الشهادات الورقية عبر ⁦elide crt generate⁩ والوثوق بها على مستوى النظام عبر ⁦elide crt trust⁩.

إذا كانت ⁦CA⁩ موجودة بالفعل، يرفض الأمر الكتابة فوقها ويقترح استخدام ⁦--show⁩ أو ⁦--force⁩.

نوع مفتاح وصلاحية مخصصان

bash
 elide crt ca --key-type ecdsa-p384 --days 1825 --name "My Dev CA"

خوارزميات المفاتيح المدعومة

القيمةالخوارزميةملاحظات
ecdsa-p256⁦ECDSA⁩ مع ⁦NIST P-256⁩الافتراضي. أفضل توازن بين الأداء والتوافق
ecdsa-p384⁦ECDSA⁩ مع ⁦NIST P-384⁩منحنى أقوى، توقيعات أكبر قليلاً
ed25519⁦Edwards-curve Ed25519⁩توقيع سريع، مفاتيح مدمجة. بعض العملاء القدامى قد لا يدعمونه
تُقبل أيضًا الاختصارات: ⁦p256⁩ لـ⁦ecdsa-p256⁩، ⁦p384⁩ لـ⁦ecdsa-p384⁩.

⁦CA⁩ وكيل ⁦MITM⁩

يستخدم الوكيل الأمامي (⁦elide fwd⁩) ⁦CA⁩ منفصلة لاعتراض ⁦TLS⁩، عازلاً الشهادات الموقّعة بـ⁦MITM⁩ عن ⁦CA⁩ التطوير:

bash
 elide crt ca --proxy

ينشئ هذا ⁦CA⁩ ثانية تحت دليل ⁦proxy-ca/⁩ الفرعي باسم "⁦Elide Local CA (Proxy)⁩". تُدار ⁦CA⁩ الوكيل و⁦CA⁩ الرئيسية بشكل مستقل — لكل منهما شهادتها ومفتاحها الخاص.

عرض ⁦CA⁩ موجودة

عرض تفاصيل ⁦CA⁩ موجودة بدون إعادة إنشائها:

bash
 elide crt ca --show

لـ⁦CA⁩ الوكيل:

bash
 elide crt ca --show --proxy

يتضمن الإخراج الموضوع، والمُصدِر، والبصمة (⁦SHA-256⁩)، وتواريخ الصلاحية، وخوارزمية المفتاح، واستخدام المفتاح. أضف ⁦--json⁩ لمخرجات مُهيكلة.

سجل شفافية الشهادات

تفعيل سجل شفافية شهادات مُضمّن لـ⁦CA⁩. عند التكوين، كل شهادة تُصدرها هذه ⁦CA⁩ تُقدَّم إلى السجل، ويُضمَّن ⁦SCT⁩ (الطابع الزمني الموقَّع للشهادة) الناتج في الشهادة كملحق ⁦X.509⁩ (⁦OID⁩ ⁦1.3.6.1.4.1.11129.2.4.2⁩):

bash
 elide crt ca --ct-log ./ct-data
سجل شفافية الشهادات المُضمّن مفيد لاختبار خطوط أنابيب شفافية الشهادات محليًا. للاستخدام الإنتاجي، قدّم الشهادات إلى سجلات شفافية الشهادات العامة (⁦Google Argon⁩، ⁦Cloudflare Nimbus⁩، إلخ.) بدلاً من ذلك.

الكتابة فوق ⁦CA⁩ موجودة

افتراضيًا، يرفض ⁦elide crt ca⁩ الكتابة فوق ⁦CA⁩ موجودة. استخدم ⁦--force⁩ لإعادة الإنشاء:

bash
 elide crt ca --force
الكتابة فوق ⁦CA⁩ تُبطل جميع الشهادات الموقّعة سابقًا بها. ستحتاج أيضًا لتحديث إدخالات مخزن الثقة لـ⁦CA⁩ القديمة.

دليل إخراج مخصص

تخزين ⁦CA⁩ في دليل محدد بدلاً من مخزن ⁦PKI⁩ الافتراضي:

bash
 elide crt ca --out-dir /opt/elide/pki

---

مرجع سطر الأوامر: ⁦ca⁩

elide crt ca [OPTIONS]
العلَمالافتراضيالوصف
—name Elide Local CAالاسم الشائع لشهادة ⁦CA⁩
—days 3650فترة الصلاحية بالأيام (افتراضي: 10 سنوات)
—key-type ecdsa-p256خوارزمية المفتاح: ⁦ecdsa-p256⁩ أو ⁦ecdsa-p384⁩ أو ⁦ed25519
—out-dir افتراضي المنصةدليل إخراج ملفات ⁦CA⁩
—proxyfalseإنشاء ⁦CA⁩ وكيل ⁦MITM⁩ منفصلة
—showfalseعرض معلومات ⁦CA⁩ الموجودة بدلاً من إنشاء واحدة جديدة
—forcefalseالكتابة فوق ⁦CA⁩ موجودة
—ct-log لا شيءتفعيل سجل شفافية الشهادات المُضمّن (حدّد مسار دليل البيانات)
—jsonfalseالإخراج بصيغة ⁦JSON⁩
---

الوثوق بـ⁦CA⁩

تثبيت ⁦CA⁩ المحلية لـ⁦Elide⁩ في مخزن ثقة نظام التشغيل حتى تُقبل الشهادات الموقّعة بها من المتصفحات و⁦curl⁩ وعملاء ⁦TLS⁩ الأخرى:

bash
 sudo elide crt trust
على ⁦Linux⁩ و⁦macOS⁩، تتطلب عمليات مخزن ثقة النظام صلاحيات ⁦root⁩. على ⁦Windows⁩، يعمل مخزن المستخدم الحالي بدون رفع الامتيازات؛ استخدم ⁦—system⁩ لمخزن الجهاز (يتطلب المسؤول). استخدم ⁦—dry-run⁩ لمعاينة الأوامر بدون تنفيذها.

دعم المنصات

يكتشف ⁦Elide⁩ مخزن ثقة المنصة تلقائيًا:
المنصةالخلفيةالآلية
⁦Debian⁩، ⁦Ubuntu⁩update-ca-certificatesالنسخ إلى ⁦/usr/local/share/ca-certificates/
⁦RHEL⁩، ⁦Fedora⁩update-ca-trustالنسخ إلى ⁦/etc/pki/ca-trust/source/anchors/
توزيعات ⁦Linux⁩ مختلفةp11-kit trustتشغيل ⁦trust anchor —store
⁦macOS⁩أداة ⁦securityالإضافة إلى سلسلة مفاتيح المستخدم أو النظام
⁦Windows⁩certutil.exe⁩ / ⁦PowerShell⁩الاستيراد إلى ⁦CurrentUser\Root⁩ أو ⁦LocalMachine\Root

الوثوق بملف شهادة محدد

بدلاً من ⁦CA⁩ المحلية الافتراضية لـ⁦Elide⁩، يمكن الوثوق بأي شهادة ⁦CA⁩ بترميز ⁦PEM⁩:

bash
 sudo elide crt trust /path/to/custom-ca.crt

الوثوق بـ⁦CA⁩ الوكيل

bash
 sudo elide crt trust --proxy

مخزن ⁦NSS⁩ لـ⁦Firefox⁩

يستخدم ⁦Firefox⁩ قاعدة بيانات شهاداته الخاصة لكل ملف تعريف (⁦cert9.db⁩). استخدم ⁦--firefox⁩ لتثبيت ⁦CA⁩ في جميع ملفات تعريف ⁦Firefox⁩ المُكتشفة عبر ⁦certutil⁩:

bash
 sudo elide crt trust --firefox

مخزن ثقة ⁦JVM⁩ (⁦cacerts⁩)

تستخدم تطبيقات ⁦Java⁩ مخزن ثقتها الخاص (⁦cacerts⁩). ثبّت ⁦CA⁩ فيه بـ⁦--java⁩:

bash
 sudo elide crt trust --java

إذا لم تكن ⁦JVM⁩ في الموقع القياسي، حدّده:

bash
 sudo elide crt trust --java --java-home /usr/lib/jvm/java-21

تُستورد ⁦CA⁩ بالاسم المستعار ⁦elide-local-ca⁩ باستخدام ⁦keytool -importcert⁩ بكلمة مرور مخزن المفاتيح الافتراضية (⁦changeit⁩).

مخزن ⁦Windows⁩ على مستوى الجهاز

على ⁦Windows⁩، يستهدف ⁦elide crt trust⁩ مخزن المستخدم الحالي افتراضيًا. للتثبيت في مخزن ⁦LocalMachine\Root⁩ على مستوى الجهاز (يؤثر على جميع المستخدمين)، أضف ⁦--system⁩:

bash
 elide crt trust --system

يتطلب هذا التشغيل كمسؤول.

التشغيل التجريبي

معاينة ما سيحدث بدون إجراء أي تغييرات:

bash
 elide crt trust --dry-run

يطبع هذا عمليات نسخ الملفات وأوامر النظام الدقيقة التي ستُنفَّذ، بدون تشغيلها.

---

مرجع سطر الأوامر: ⁦trust⁩

elide crt trust [OPTIONS] [FILE]
العلَمالافتراضيالوصف
FILE⁦CA⁩ المحلية لـ⁦Elide⁩ملف شهادة ⁦CA⁩ للوثوق بها (احذفه لاستخدام ⁦CA⁩ المحلية لـ⁦Elide⁩)
—proxyfalseالوثوق بـ⁦CA⁩ وكيل ⁦MITM⁩ بدلاً من ⁦CA⁩ الرئيسية
—firefoxfalseالتثبيت أيضًا في مخزن شهادات ⁦Firefox/NSS⁩
—javafalseالتثبيت أيضًا في مخزن ثقة ⁦JVM⁩ (⁦cacerts⁩)
—java-home $JAVA_HOMEدليل ⁦JVM⁩ الرئيسي (يُستخدم مع ⁦—java⁩)
—systemfalseالتثبيت في مخزن الجهاز (⁦Windows⁩: يتطلب المسؤول)
—dry-runfalseعرض ما سيُنفَّذ بدون تنفيذ
—jsonfalseالإخراج بصيغة ⁦JSON⁩
---

إزالة الثقة

إزالة ⁦CA⁩ المحلية لـ⁦Elide⁩ من مخزن ثقة النظام:

bash
 sudo elide crt untrust

الإزالة من جميع المخازن

الإزالة من مخزن ثقة النظام، وقاعدة بيانات ⁦NSS⁩ لـ⁦Firefox⁩، ومخزن ثقة ⁦JVM⁩ بأمر واحد:

bash
 sudo elide crt untrust --all

إزالة ⁦CA⁩ الوكيل

bash
 sudo elide crt untrust --proxy

التشغيل التجريبي

bash
 elide crt untrust --dry-run

---

مرجع سطر الأوامر: ⁦untrust⁩

elide crt untrust [OPTIONS] [FILE]
العلَمالافتراضيالوصف
FILE⁦CA⁩ المحلية لـ⁦Elide⁩ملف شهادة ⁦CA⁩ للإزالة (احذفه لاستخدام ⁦CA⁩ المحلية لـ⁦Elide⁩)
—proxyfalseإزالة ⁦CA⁩ وكيل ⁦MITM⁩
—firefoxfalseالإزالة أيضًا من مخزن شهادات ⁦Firefox/NSS⁩
—javafalseالإزالة أيضًا من مخزن ثقة ⁦JVM⁩ (⁦cacerts⁩)
—java-home $JAVA_HOMEدليل ⁦JVM⁩ الرئيسي (يُستخدم مع ⁦—java⁩)
—allfalseالإزالة من جميع المخازن (النظام + ⁦Firefox NSS⁩ + ⁦JVM⁩)
—systemfalseالإزالة من مخزن الجهاز (⁦Windows⁩: يتطلب المسؤول)
—dry-runfalseعرض ما سيُنفَّذ بدون تنفيذ
—jsonfalseالإخراج بصيغة ⁦JSON⁩
---

انظر أيضًا