setup
إعداد وتكوين OpenBao
دليل خطوة بخطوة لتكوين إلغاء الختم التلقائي لـ OpenBao باستخدام مكتبة DuoKey PKCS#11
ينطبق على:
OpenBaoPKCS#11 Auto-UnsealDuoKey CockpitSoftware Vault / Primus HSM
المتطلبات المسبقة
المتطلبات المسبقة
- OpenBao installed and ready to configure
- DuoKey Cockpit account with a KMS Application created
- DuoKey PKCS#11 library (libdke_pkcs11.so) compiled and installed
- AES or RSA key pre-created in the Cockpit vault
- Network connectivity from OpenBao server to DuoKey Cockpit API (HTTPS/443)
مهم
يجب إنشاء مفتاح التشفير المستخدم لإلغاء الختم التلقائي قبل تكوين OpenBao. كما هو مذكور في وثائق OpenBao، يجب أن يكون المفتاح موجودًا قبل التهيئة.
خطوات الإعداد
إنشاء تطبيق KMS في DuoKey Cockpit
أنشئ تطبيق KMS في DuoKey Cockpit مع واجهة الخزنة الخلفية المطلوبة (Software Vault أو Primus HSM)
إنشاء مفتاح التشفير
أنشئ مفتاح AES أو RSA في خزنة Cockpit الذي سيستخدمه OpenBao للختم/إلغاء الختم
تثبيت مكتبة PKCS#11
انسخ ملف
libdke_pkcs11.so المُترجم إلى مسار معروف، مثل /usr/local/lib/pkcs11/تكوين متغيرات البيئة
اضبط متغيرات بيئة مكتبة PKCS#11 للوصول إلى Cockpit
تكوين مقطع seal في OpenBao
أضف تكوين seal الخاص بـ PKCS#11 إلى ملف تكوين OpenBao
تهيئة OpenBao أو إعادة تشغيله
قم بتهيئة OpenBao (لأول مرة) أو أعد تشغيله لاستخدام إلغاء الختم التلقائي
متغيرات البيئة
اضبط متغيرات البيئة المطلوبة لمكتبة PKCS#11 قبل بدء تشغيل OpenBao. يمكن وضعها في ملف تكوين يستدعيه (source) خدمة OpenBao.
/etc/dke/pkcs11.toml
[http_config]
server_url = "https://<cockpit-host>/api/apps/<app_id>/tde/pkcs11/<access_guid>"
access_token = "<access_guid>"
timeout_secs = 30
verify_tls = true
[pkcs11]
slot_id = 0
logging_level = "info"
logging_folder = "/var/log/dke-pkcs11"
export DKE_PKCS11_CONF=/etc/dke/pkcs11.toml
نصيحة
لعمليات النشر القائمة على systemd، يمكنك إضافة هذه المتغيرات إلى ملف بيئة خدمة OpenBao (مثل
/etc/openbao.d/openbao.env).تكوين seal في OpenBao
أضف مقطع seal "pkcs11" إلى ملف تكوين OpenBao (مثل /etc/openbao.d/openbao.hcl).
تكوين مفتاح AES
seal "pkcs11" {
lib = "/usr/local/lib/pkcs11/libdke_pkcs11.so"
slot = "0"
pin = "1234"
key_label = "bao-root-key-aes-256"
mechanism = "0x00001087"
}
| المعامل | الوصف |
|---|---|
| lib | مسار مكتبة DuoKey PKCS#11 المشتركة |
| slot | معرّف الفتحة — اضبطه على "0" |
| pin | يمكن أن يكون أي قيمة (غير مُتحقق منه حاليًا بواسطة المكتبة) |
| key_label | تسمية مفتاح AES المنشأ في DuoKey Cockpit |
| mechanism | 0x00001087 = CKM_AES_GCM |
تكوين مفتاح RSA
seal "pkcs11" {
lib = "/usr/local/lib/pkcs11/libdke_pkcs11.so"
slot = "0"
pin = "1234"
key_label = "bao-root-key-rsa-4096"
mechanism = "0x00000009"
rsa_oaep_hash = "sha256"
}
| المعامل | الوصف |
|---|---|
| lib | مسار مكتبة DuoKey PKCS#11 المشتركة |
| slot | معرّف الفتحة — اضبطه على "0" |
| pin | يمكن أن يكون أي قيمة (غير مُتحقق منه حاليًا بواسطة المكتبة) |
| key_label | تسمية مفتاح RSA المنشأ في DuoKey Cockpit |
| mechanism | 0x00000009 = CKM_RSA_PKCS_OAEP |
| rsa_oaep_hash | خوارزمية التجزئة لـ RSA-OAEP — استخدم "sha256" |
ملاحظة
قيمة
slot هي معرّف الفتحة ويمكن ضبطها على "0". يمكن أن يكون pin أي قيمة لأنه غير مُتحقق منه حاليًا بواسطة المكتبة.توافق الواجهة الخلفية
| الواجهة الخلفية | AES (CKM_AES_GCM) | RSA (CKM_RSA_PKCS_OAEP) |
|---|---|---|
| Software Vault | تم اختباره بنجاح | تم اختباره بنجاح |
| Primus HSM | غير مدعوم — لا يقبل Primus متجه التهيئة (IV) المُدخل ويولّد متجهه الخاص، وهو غير متوافق مع متطلبات ختم AES-GCM | تم اختباره بنجاح |
تنبيه
عند استخدام Primus HSM كواجهة خلفية، يمكن استخدام مفاتيح RSA فقط لإلغاء الختم التلقائي. لا يعمل الختم القائم على AES لأن Primus يولّد متجه التهيئة (IV) الخاص به بدلًا من قبول المتجه الذي توفره المكتبة.
التحقق
بعد تكوين OpenBao، تحقق من أن إلغاء الختم التلقائي يعمل:
# Start or restart OpenBao
sudo systemctl restart openbao
# Check the seal status
bao status
إذا تم تكوين إلغاء الختم التلقائي بشكل صحيح، ينبغي أن تُبلّغ الخزنة عن حالتها كمفكوكة الختم تلقائيًا بعد بدء التشغيل.
# Expected output (key fields)
# Seal Type: pkcs11
# Initialized: true
# Sealed: false
استكشاف الأخطاء وإصلاحها
نصيحة
فعّل تسجيل التصحيح (
DKE_PKCS11_LOGGING_LEVEL=debug) أثناء الإعداد الأولي للمساعدة في تشخيص أي مشكلات. تذكّر إعادته إلى Info (0) أو أعلى للاستخدام في الإنتاج.