النشر
دفع الشهادات مباشرةً إلى حيث تُنهي TLS — مع التحقق والتراجع.
نظرة عامة
بدلاً من تصدير شهادة وتثبيتها يدوياً، يمكن لـ DuoKey نشرها مباشرةً على الجهاز أو الخدمة التي تُنهي TLS. تعمل كل عملية نشر كـ مهمة تتحقق من النتيجة ويمكن التراجع عنها.
| الهدف | ملاحظات الموصل |
|---|---|
| F5 BIG-IP | iControl REST — نشر الشهادة والمفتاح أو الشهادة فقط؛ الاكتشاف والاختبار والتراجع |
| Fortinet FortiGate | النشر والتراجع |
| Azure App Service | ربط الشهادات بخدمات التطبيقات |
| Entra ID | App Proxy وApp Registration |
| Microsoft IIS · Active Directory / LDAPS · Windows CAPI | يُدار عبر عميل (PowerShell) — يقوم عميل ماسح مرتبط بالهدف بتنفيذ الاستيراد/الربط محلياً أو عبر WinRM |
| Nginx · Java Keystore | SSH — يتصل Cockpit مباشرةً، ويضع الشهادة/المفتاح (أو يستوردها إلى keystore) وينفّذ أمر إعادة التحميل/إعادة التشغيل |
| Apache HTTPD | للتهيئة فقط حالياً — إنشاء الهدف مدعوم، لكن النشر الفعلي غير مُفعَّل بعد |
| ServiceNow CMDB | مزامنة الجرد / انتهاء الصلاحية (ليس هدف إنهاء TLS) |
دورة حياة مهمة النشر
| الحالة | المعنى |
|---|---|
| pending | أُنشئت المهمة، لم تبدأ بعد |
| running | جارٍ دفع الشهادة إلى الهدف |
| validating | جارٍ التأكد من أن الهدف يقدّم الآن الشهادة الجديدة |
| succeeded / failed | النتيجة النهائية |
| rolled_back | أُعيدت بعد الاكتمال |
التراجع هو الانتقال الوحيد المسموح به بعد اكتمال المهمة، بحيث يمكن التراجع عن دفعة سيئة إلى الشهادة السابقة. لدى F5 وFortinet نقاط نهاية تراجع مخصصة؛ تتراجع الأهداف العامة عبر واجهة برمجة تطبيقات مهام النشر.
عمليات الموصل
تشترك جميع الموصلات في مجموعة موحّدة من العمليات — الاكتشاف / الجرد / الإضافة / الإزالة / إعادة التسجيل — بحيث تبدو إدارة الشهادات عبر أهداف متنوّعة متسقة. تحفظ ملفات تعريف الاتصال القابلة لإعادة الاستخدام بيانات اعتماد الهدف مرة واحدة، ويمكن اختبارها وإعادة ربطها.
F5 BIG-IP
تسجيل هدف F5
أضف هدف F5 (عنوان الإدارة + بيانات الاعتماد) وشغّل الاختبار للتأكد من الاتصال.
النشر
انشر الشهادة والمفتاح، أو الشهادة فقط عندما يكون المفتاح موجوداً بالفعل. تتحقق المهمة من ربط ملف تعريف SSL.
التراجع عند الحاجة
إذا فشل التحقق أو تصرّف التغيير بشكل غير متوقّع، أعد المهمة إلى الشهادة السابقة.
Microsoft IIS وActive Directory / LDAPS وWindows CAPI (عبر عميل)
تشترك هذه الأهداف الثلاثة في نفس نموذج التنفيذ — نمط يشبه Keyfactor Universal Orchestrator. يسجّل عميل ماسح محلي نفسه لدى Cockpit ويُربط بالهدف؛ وبدلاً من أن يتصل Cockpit مباشرةً، يقوم العميل بجلب مهام النشر وفق وتيرة نبضه الخاصة (heartbeat) وينفّذها محلياً (أو عبر WinRM على مضيف بعيد).
تسجيل العميل وتشغيله
على مضيف Windows (أو الجهاز الذي سيستخدم WinRM للاتصال به)، سجّل نفسك مرة واحدة باستخدام رمز تثبيت أحادي الاستخدام يُنشأ من Scanner Agents ← Generate installer في واجهة Cockpit:
dke-scanner-agent enroll --server https://<cockpit-host> --token <enrollment-token>يكتب هذا هوية العميل ومفتاح API إلى ~/.dke/agent.toml (بنمط 0600). ثم شغّل عملية العميل الدائمة، التي تتصل بـ Cockpit وترسل نبضات وتستطلع مهام النشر:
dke-scanner-agent agentلا حاجة لعلم منفصل لتفعيل مهام النشر — يُبلّغ كل عميل مسجَّل تلقائياً عن قدرة cert_deploy، لذا يظهر في قائمة اختيار العميل بالمعالج بمجرد تسجيله وتشغيله. يجب أن تبقى العملية قيد التشغيل (كخدمة Windows، وليس كجلسة تفاعلية تنتهي عند تسجيل الخروج) حتى تُلتقط المهام؛ راجع وضع العميل للحصول على مرجع CLI الكامل، بما في ذلك --heartbeat-interval و--config.
ربط الهدف بالعميل
في معالج النشر، اختر العميل المسجَّل لذلك الهدف — أو، بالنسبة لمضيف بعيد لا يعمل عليه العميل مباشرةً، اختر نقل WinRM بدلاً من ذلك، وقدّم اسم مستخدم المضيف البعيد وكلمة المرور والمنفذ وإعدادات TLS.
تسجيل الهدف
Microsoft IIS: اسم الموقع، ورأس المضيف والمنفذ الخاصين بالربط، ومخزن الجهاز (LocalMachine\My أو WebHosting)، وSNI. Active Directory / LDAPS: مخزن NTDS\My المخصص لوحدة التحكم بالمجال، وFQDN الخاص بوحدة التحكم بالمجال، وإعادة تحميل LDAPS في مكانها (دون إعادة تشغيل). Windows CAPI: عنوان IP/منفذ ربط SSL، ومعرّف GUID للتطبيق الذي يتطلبه netsh http add sslcert.
النشر
يحلّ Cockpit الشهادة المُدارة، ويبني PFX، ويضع مهمة مشفَّرة في قائمة الانتظار. يجلبها العميل، ويستورد الشهادة إلى مخزن شهادات Windows ويربطها — عبر ربط موقع IIS، أو إعادة تحميل LDAPS، أو ربط netsh http add sslcert — ثم يُبلّغ بالنتيجة، ما يحدّث مهمة النشر.
يتطلب الاستيراد إلى مخزن شهادات الجهاز وربط IIS أو CAPI سياق PowerShell مرتفع الصلاحيات (يستدعي العميل powershell.exe لتشغيل Import-Module WebAdministration وImport-PfxCertificate -CertStoreLocation Cert:\LocalMachine\My وnetsh http add sslcert). ثبّت dke-scanner-agent agent كخدمة Windows تعمل ضمن LocalSystem أو حساب خدمة إداري — أما جلسة طرفية تفاعلية غير إدارية فستفشل في هذه الخطوات بخطأ رفض الوصول، حتى لو بدأ العميل نفسه وأرسل النبضات بنجاح.
Nginx وJava Keystore (عبر SSH)
يصل Cockpit إلى هذين الهدفين مباشرةً عبر SSH — دون الحاجة إلى عميل.
تسجيل الهدف
مضيف SSH ومنفذه واسم المستخدم، بالإضافة إما إلى كلمة مرور أو مفتاح خاص (PEM، محمي اختيارياً بعبارة مرور) — مع بصمة SHA-256 اختيارية لمفتاح المضيف لتثبيتها. يأخذ Nginx أيضاً مسارَي ملفَي الشهادة والمفتاح وأمر إعادة التحميل. يأخذ Java Keystore مسار keystore، والاسم المستعار، ونوع keystore (PKCS12 أو JKS القديم)، وكلمة مرور keystore، وأمر إعادة تشغيل اختياري.
اختبار الاتصال
يتحقق من عمل بيانات اعتماد SSH ويُبلّغ عمّا هو منشور بالفعل — قراءة openssl x509 لملف الشهادة بالنسبة لـ Nginx، وتحقق من وجود ملف keystore بالنسبة لـ Java Keystore.
النشر
Nginx: يكتب Cockpit الشهادة والمفتاح الخاص إلى المسارات المُهيَّأة عبر SSH، ثم ينفّذ أمر إعادة التحميل. Java Keystore: يبني Cockpit ملف PKCS#12 محلياً من الشهادة المُدارة، ويرسله إلى المضيف عبر SSH، ويستورده باستخدام keytool -importkeystore تحت الاسم المستعار المُهيَّأ، ثم ينفّذ أمر إعادة التشغيل الاختياري.
ترك بصمة مفتاح المضيف فارغة يعني الثقة بأي مفتاح يقدّمه المضيف عند أول اتصال. ثبّت بصمة SHA-256 على الهدف للاستخدام في الإنتاج.
مرجع API
إدارة أهداف النشر، وتشغيل مهام النشر والتراجع عنها، وتخزين ملفات تعريف اتصال قابلة لإعادة الاستخدام، ومزامنة الجرد مع ServiceNow CMDB — كل ذلك متاح برمجياً عبر واجهة برمجة تطبيقات المنصة.