★ الميزة الرئيسية

منصة إدارة الشهادات

أتمتة دورة حياة شهادات TLS على مستوى المؤسسات — من طلب الخدمة الذاتية إلى التخزين في Vault. متعدد المستأجرين، GitOps بالكامل، صفر خطوات يدوية.

دورة حياة الشهادة

سبع خطوات مؤتمتة من الطلب إلى التجديد — لا تدخل بشري مطلوب بعد الموافقة الأولى على PR.

1

الطلب

Backstage

المستخدم يقدم طلبًا عبر بوابة Backstage للخدمة الذاتية. اسم الفريق، النطاق، النطاق الفرعي، نوع المُصدر.

2

إنشاء PR

GitHub API

النظام ينشئ طلب سحب GitHub يحتوي على بيانات YAML للشهادة وتكوين فضاء الأسماء وسياسات RBAC.

3

مزامنة GitOps

ArgoCD

بعد الموافقة على PR ودمجه، ArgoCD يكتشف التغييرات ويزامن البيانات إلى الكلستر.

4

تحدي ACME

cert-manager

cert-manager ينشئ سجل TXT لـ DNS-01 عبر API Cloudflare لإثبات ملكية النطاق لدى Let's Encrypt.

5

إصدار الشهادة

Let's Encrypt

Let's Encrypt يتحقق من تحدي DNS ويصدر شهادة TLS. cert-manager يخزنها كسر Kubernetes.

6

تخزين Vault

ESO PushSecret

مشغّل External Secrets PushSecret يزامن الشهادة تلقائيًا إلى HashiCorp Vault للاستهلاك الخارجي.

7

التجديد التلقائي

cert-manager

cert-manager يجدد تلقائيًا قبل 30 يومًا من انتهاء الصلاحية. الشهادة المجددة تنتشر إلى K8s وVault.

عزل متعدد المستأجرين

كل فريق يحصل على فضاء أسماء خاص مع عزل صارم — RBAC وسياسات الشبكة وسياسات Vault وقواعد Kyverno تمنع الوصول بين المستأجرين.

📦

فضاء الأسماء

فضاء أسماء مخصص لكل مستأجر مع حصص الموارد وحدود النطاق.

🔐

RBAC

RBAC في Kubernetes يقيد الوصول إلى الموارد الخاصة بالمستأجر فقط.

🌐

الشبكة

NetworkPolicies تفرض عزل المستأجرين على مستوى الشبكة.

🗝️

Vault

سياسات Vault تضمن أن المستأجرين يمكنهم فقط قراءة مسارات أسرارهم الخاصة.

مزودو DNS المدعومون

تحديات DNS-01 تعمل مع أي مزود DNS — أصليًا أو عبر webhooks.

Cloudflare

recommended

Native 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 تكتشف المشاكل قبل أن تؤثر على المستخدمين.

warning

CertificateExpiryWarning

Fires 30 days before a certificate expires

critical

CertificateExpired

Certificate has already expired

critical

IssuerNotReady

ClusterIssuer is not functioning correctly

warning

PushSecretSyncFailed

ESO cannot synchronize certificate to Vault