elide crt
elide crt هي مجموعة أدوات PKI محلية كاملة مدمجة في بيئة التشغيل. أنشئ سلطات شهادات، وولّد شهادات موقّعة بـCA أو موقّعة ذاتيًا، وثبّت سلطات الشهادات في مخازن ثقة النظام والمتصفح، وافحص الشهادات من ملفات أو مضيفين بعيدين، وتحقق من سلاسل الشهادات، وحوّل بين PEM وDER، وجدّد الشهادات عبر ACME DNS-01. كل أمر فرعي يدعم --json لمخرجات قابلة للقراءة آليًا.
إذا سبق لك الصراع مع تعاويذ openssl لتشغيل HTTPS المحلي، فهذا هو الحل.
---
بدء سريع
أنشئ CA محلية وولّد شهادة تطوير موثوقة من المتصفح في ثلاثة أوامر:
# 1. Create a local Certificate Authority
elide crt ca
# 2. Generate a certificate signed by that CA
elide crt generate example.local localhost 127.0.0.1
# 3. Trust the CA system-wide (requires sudo on Linux/macOS)
sudo elide crt trustيمكن لخادم التطوير الآن استخدام example.local.crt وexample.local.key لـHTTPS بدون تحذيرات المتصفح.
---
الأوامر الفرعية
| الأمر الفرعي | ما يفعله |
|---|---|
ca | إنشاء أو عرض سلطة شهادات محلية |
generate | إنشاء شهادة TLS (موقّعة بـCA أو موقّعة ذاتيًا) |
trust | تثبيت شهادة CA في مخازن ثقة النظام |
untrust | إزالة شهادة CA من مخازن الثقة |
inspect | عرض تفاصيل الشهادة من ملف أو مضيف بعيد |
verify | التحقق من صلاحية الشهادة وسلسلتها واسم المضيف |
export | تحويل الشهادات بين صيغتي PEM وDER |
renew | تجديد الشهادات عبر تحدي ACME DNS-01 (Let's Encrypt) |
سير العمل الشائعة
HTTPS للتطوير المحلي
إعداد HTTPS موثوق من المتصفح للتطوير المحلي. أنشئ CA مرة واحدة، وثق بها مرة واحدة، ثم ولّد شهادات لكل مشروع حسب الحاجة.
# One-time setup
elide crt ca
sudo elide crt trust
# Per-project
elide crt generate myapp.local localhost 127.0.0.1 ::1استخدم الشهادة المُولَّدة مع elide serve أو أي خادم يدعم TLS:
elide serve --tls-cert myapp.local.crt --tls-key myapp.local.key ./distشهادات عميل mTLS
ولّد شهادات عميل للمصادقة المتبادلة عبر TLS. نفس CA توقّع شهادتَي الخادم والعميل؛ يتحقق الخادم من شهادة العميل مقابل تلك CA.
elide crt generate api.internal --out-dir ./certs
elide crt generate client-service --client --out-dir ./certsفحص شهادات الإنتاج
فحص سلسلة الشهادات وانتهاء الصلاحية لخادم حي:
# Full chain
elide crt inspect example.com --chain
# Verify with an expiry warning threshold
elide crt verify example.com --expiry-warn 30
# Compact one-liner for CI dashboards
elide crt inspect example.com --briefتجديد شهادات ACME
الحصول على أو تجديد شهادة موثوقة عامة من Let's Encrypt باستخدام تحقق DNS-01:
elide crt renew example.com \
--acme-email admin@example.com \
--dns cloudflare \
--dns-token "$CF_API_TOKEN"اختبر مع بيئة Let's Encrypt التجريبية أولاً:
elide crt renew example.com \
--acme-email admin@example.com \
--dns cloudflare \
--dns-token "$CF_API_TOKEN" \
--stagingCA وكيل MITM
إنشاء CA منفصلة لاعتراض TLS الخاص بالوكيل الأمامي، مع عزلها عن CA التطوير:
elide crt ca --proxy
sudo elide crt trust --proxyتحويل صيغة الشهادات
التحويل بين PEM وDER، أو تجميع سلسلة شهادات:
# PEM to DER
elide crt export cert.pem --out cert.der
# Bundle leaf + CA into a single chain file
elide crt export leaf.crt --chain ca.crt --out fullchain.pem---
تخزين PKI
يُخزّن Elide شهادات CA والمفاتيح الخاصة في دليل بيانات خاص بالمنصة:
~/.local/share/elide/pki/ # Linux (via XDG_DATA_HOME)
~/Library/Application Support/elide/pki/ # macOS
ca/
ca.crt # CA certificate (PEM)
ca.key # CA private key (PEM, mode 0600)
proxy-ca/
proxy-ca.crt # Proxy MITM CA certificate
proxy-ca.key # Proxy MITM CA private keyتُنشأ ملفات المفاتيح الخاصة بأذونات 0600 على أنظمة Unix. يمكن تجاوز دليل التخزين بـ--out-dir في الأمر الفرعي ca.
---
مخرجات JSON
كل أمر فرعي يدعم --json لمخرجات مُهيكلة، مما يسهّل التكامل مع السكربتات وخطوط أنابيب CI:
# Extract DNS SANs from a remote certificate
elide crt inspect example.com --json | jq '.[0].san_dns'
# Check validity programmatically
elide crt verify ./cert.pem --json | jq '.valid'
# Show existing CA details as JSON
elide crt ca --show --json---
انظر أيضًا
- CA وإدارة الثقة — إنشاء سلطات الشهادات، والتثبيت في مخازن ثقة النظام وJVM
- إنشاء الشهادات والتحقق منها — إنشاء وفحص والتحقق من شهادات TLS وتحويلها