DAT
الوثائق

DAT CMS

ينشئ DAT CMS الشهادات ويحفظها في قاعدة بيانات ويسلّم الشهادات المناسبة لخدمات الإصدار والتحقق. يرد وصف سلوك البروتوكول في مواصفة DAT CMS.

إنشاء إعدادات التشغيل

خدمة إدارة شهادات DAT

dns

الخادم

Portالافتراضي: 8088
Hostnameالافتراضي: Auto
terminal

أمر التشغيل

bash
فحص API
bash
database

قاعدة البيانات

ذاكرة API المؤقتةالافتراضي: 60
verified_user

شهادة DAT

خوارزمية التوقيع
خوارزمية التشفير
تأخير إصدار الشهادةثوانٍhelp
فترة إصدار DATثوانٍhelp
TTL لـ DAT (مدة الصلاحية)ثوانٍhelp
جدول إنشاء شهادات DAT ‏(Cron)help
lock

التحكم في الوصول

Master token
إنشاء شهادات DAT وجلب إصدار الخادم
Full Cert token
جلب شهادات Full (Pair Key, Hash Key)
Verify Cert token
جلب شهادات Verify (Verify Key Only)

التشغيل باستخدام Docker

شغّل الحاوية كمستخدم غير root. وعند استخدام SQLite، صِل دليل بيانات قابلًا للكتابة. مرّر الرموز وكلمات مرور قاعدة البيانات عبر آلية حقن الأسرار بدلًا من سجل الأوامر.

docker run --rm --name dat-cms -p 8088:8088 \
  --user 10001:10001 \
  -v "$PWD/dat-cms-data:/data" \
  -e PORT=8088 \
  -e DB_URI='sqlite:/data/data.db' \
  -e TOKEN_MASTER='replace-with-a-secret' \
  -e TOKEN_CERT_FULL='replace-with-a-secret' \
  -e TOKEN_CERT_VERIFY='replace-with-a-secret' \
  sarolab/dat-cms

قاعدة البيانات

استخدم DB_URI لإعداد اتصال SQLite أو PostgreSQL أو MySQL. تتصل MariaDB عبر بروتوكول MySQL. يخزّن CMS نتائج استعلامات الشهادات كلقطة مؤقتة ويواصل تقديم آخر لقطة ناجحة عند فشل تحديث المخزن مؤقتًا.

يحدّد DB_CACHE_SECS فاصل تحديث اللقطة، بينما يضع DB_QUERY_TIMEOUT_SECS حدًا زمنيًا لاستعلامات التحديث. إذا لم توجد لقطة ناجحة وتعذرت قراءة المخزن، تعيد الخدمة DAT_STORE_UNAVAILABLE.

أدوار الوصول

متغير البيئةالصلاحيةالجهة المستخدمة
TOKEN_MASTERتسجيل الشهادات وجلب الإصدار المحميالعمليات
TOKEN_CERT_FULLجلب الشهادات الكاملةخدمات إصدار DAT
TOKEN_CERT_VERIFYجلب شهادات التحقق فقطخدمات التحقق وفك التشفير

يقبل كل متغير رموزًا أبجدية رقمية مفصولة بفواصل. إذا كانت قائمة رموز أحد الأدوار فارغة، تُفتح endpoints الخاصة به ويُسجل تحذير.

إنشاء الشهادات

يسجّل دور master شهادة بتحديد خوارزمية التوقيع وخوارزمية التشفير وتأخير الانتشار وفترة الإصدار وTTL. وخلال تأخير الانتشار تزامن الخدمات الشهادة الجديدة قبل أن تصبح قابلة للإصدار.

تكامل العميل

  1. استخدم الرمز الكامل وendpoint الشهادات الكاملة لخدمات الإصدار.
  2. استخدم رمز التحقق وخيار verify-only لخدمات التحقق.
  3. افحص نتيجة المزامنة الأولى؛ وإذا كان يجب أن يفشل بدء التشغيل، فاستدعِ API المزامنة الفورية.
  4. عند تفعيل المزامنة التلقائية، أغلق المدير أثناء إيقاف التطبيق.

راجع أدلة المكتبات لمعرفة builder وسلوك الإغلاق في كل لغة.

فحوص التشغيل

  • يبلغ /health و/version/api عن الحالة من دون مصادقة.
  • يتطلب /version‏ master token عند إعداد ذلك الدور.
  • اجمع السجلات من الإخراج القياسي وإخراج الخطأ القياسي.
  • مرّر إشارات الإغلاق وامنح قاعدة البيانات وscheduler وقتًا للإغلاق.

Kubernetes

طابق منفذ الحاوية وprobes مع منفذ الخدمة، وصِل دليل البيانات بصلاحية كتابة للمستخدم غير root. احقن الرموز وتفاصيل اتصال قاعدة البيانات عبر Secrets.

securityContext:
  runAsNonRoot: true
  runAsUser: 10001
  runAsGroup: 10001
containers:
  - name: dat-cms
    image: sarolab/dat-cms
    ports: [{ containerPort: 8088 }]
    readinessProbe: { httpGet: { path: /health, port: 8088 } }
    livenessProbe: { httpGet: { path: /health, port: 8088 } }