منصة إدارة الشهادات
أتمتة دورة حياة شهادات TLS على مستوى المؤسسات — من طلب الخدمة الذاتية إلى التخزين في Vault. متعدد المستأجرين، GitOps بالكامل، صفر خطوات يدوية.
دورة حياة الشهادة
سبع خطوات مؤتمتة من الطلب إلى التجديد — لا تدخل بشري مطلوب بعد الموافقة الأولى على PR.
الطلب
Backstageالمستخدم يقدم طلبًا عبر بوابة Backstage للخدمة الذاتية. اسم الفريق، النطاق، النطاق الفرعي، نوع المُصدر.
إنشاء PR
GitHub APIالنظام ينشئ طلب سحب GitHub يحتوي على بيانات YAML للشهادة وتكوين فضاء الأسماء وسياسات RBAC.
مزامنة GitOps
ArgoCDبعد الموافقة على PR ودمجه، ArgoCD يكتشف التغييرات ويزامن البيانات إلى الكلستر.
تحدي ACME
cert-managercert-manager ينشئ سجل TXT لـ DNS-01 عبر API Cloudflare لإثبات ملكية النطاق لدى Let's Encrypt.
إصدار الشهادة
Let's EncryptLet's Encrypt يتحقق من تحدي DNS ويصدر شهادة TLS. cert-manager يخزنها كسر Kubernetes.
تخزين Vault
ESO PushSecretمشغّل External Secrets PushSecret يزامن الشهادة تلقائيًا إلى HashiCorp Vault للاستهلاك الخارجي.
التجديد التلقائي
cert-managercert-manager يجدد تلقائيًا قبل 30 يومًا من انتهاء الصلاحية. الشهادة المجددة تنتشر إلى K8s وVault.
عزل متعدد المستأجرين
كل فريق يحصل على فضاء أسماء خاص مع عزل صارم — RBAC وسياسات الشبكة وسياسات Vault وقواعد Kyverno تمنع الوصول بين المستأجرين.
فضاء الأسماء
فضاء أسماء مخصص لكل مستأجر مع حصص الموارد وحدود النطاق.
RBAC
RBAC في Kubernetes يقيد الوصول إلى الموارد الخاصة بالمستأجر فقط.
الشبكة
NetworkPolicies تفرض عزل المستأجرين على مستوى الشبكة.
Vault
سياسات Vault تضمن أن المستأجرين يمكنهم فقط قراءة مسارات أسرارهم الخاصة.
مزودو DNS المدعومون
تحديات DNS-01 تعمل مع أي مزود DNS — أصليًا أو عبر webhooks.
Cloudflare
recommendedNative integration
API Token (Zone:DNS:Edit)
AWS Route53
Native integration
Access Keys or IRSA (Workload Identity)
Google Cloud DNS
Native integration
Service Account JSON or Workload Identity
Azure DNS
Native integration
Client Secret or Managed Identity
DigitalOcean
Webhook integration
API Token via webhook solver
Custom (RFC2136)
Webhook integration
BIND-compatible TSIG key
الهندسة المعمارية التقنية
مجموعة المكونات المتكاملة التي تشغّل منصة الشهادات.
graph TD BS["Backstage Portal Self-Service UI POST /api/certificate"]:::backstage GH["GitHub Repository Git as Source of Truth tenants/team-name/certificates/"]:::github CM["cert-manager ACME Protocol DNS-01 Challenge via Cloudflare"]:::certmanager ESO["External Secrets Operator PushSecret K8s Secret → Vault"]:::eso VAULT["HashiCorp Vault Long-term Storage kv/certs/team-name/tls"]:::vault BS -->|"GitHub API"| GH GH -->|"ArgoCD sync"| CM CM -->|"K8s Secret created"| ESO ESO --> VAULT classDef backstage fill:#1e3a5f,stroke:#60a5fa,color:#93c5fd,stroke-width:2px classDef github fill:#14332a,stroke:#4ade80,color:#86efac,stroke-width:2px classDef certmanager fill:#2e1a0e,stroke:#f97316,color:#fdba74,stroke-width:2px classDef eso fill:#2e1a47,stroke:#a78bfa,color:#c4b5fd,stroke-width:2px classDef vault fill:#2e2a0e,stroke:#facc15,color:#fde68a,stroke-width:2px
قدرات المنصة
شهادات Wildcard
دعم *.example.com يغطي جميع النطاقات الفرعية. التحقق عبر DNS-01 مطلوب. Kyverno يمنع إساءة استخدام wildcard بين المستأجرين.
التجديد التلقائي
cert-manager يجدد الشهادات قبل 30 يومًا من انتهاء الصلاحية. الشهادات المجددة تنتشر تلقائيًا إلى Vault عبر PushSecret.
بوابة الخدمة الذاتية
واجهة ويب Backstage لطلب الشهادات. التحقق من النماذج، اختيار النطاق، اختيار المُصدر — لا حاجة لمعرفة YAML.
كل شيء GitOps
كل طلب شهادة يصبح PR. مسار تدقيق كامل، قدرة على التراجع، سير عمل موافقة أصلي في Git.
مراقبة Prometheus
قواعد PrometheusRules مخصصة لتنبيهات انتهاء الصلاحية وصحة المُصدرين وإخفاقات مزامنة PushSecret. لوحات Grafana مضمنة.
دعم متعدد المزودين
Cloudflare وAWS Route53 وGoogle Cloud DNS وAzure DNS ومزودو webhook لأي DNS مخصص.
تنبيهات مدمجة
تنبيهات PrometheusRule تكتشف المشاكل قبل أن تؤثر على المستخدمين.
CertificateExpiryWarning
Fires 30 days before a certificate expires
CertificateExpired
Certificate has already expired
IssuerNotReady
ClusterIssuer is not functioning correctly
PushSecretSyncFailed
ESO cannot synchronize certificate to Vault