إدارة الشهادات على جهاز IoT Edge
ينطبق على:
IoT Edge 1.1 إصدارات أخرى:IoT Edge 1.2
ينطبق على:
IoT Edge 1.2 إصدارات أخرى:IoT Edge 1.1
تستخدم جميع أجهزة IoT Edge الشهادات لإنشاء اتصالات آمنة بين وقت التشغيل وأي وحدات تعمل على الجهاز. تستخدم أجهزة IoT Edge التي تعمل كبوابات هذه الشهادات نفسها للاتصال بأجهزتها النهائية أيضا.
قم بتثبيت شهادات الإنتاج
عند تثبيت IoT Edge لأول مرة وتوفير جهازك، يتم إعداد الجهاز بشهادات مؤقتة بحيث يمكنك اختبار الخدمة. تنتهي صلاحية هذه الشهادات المؤقتة في غضون 90 يوما، أو يمكن إعادة تعيينها عن طريق إعادة تشغيل الجهاز. بمجرد الانتقال إلى سيناريو إنتاج، أو تريد إنشاء جهاز بوابة، ستحتاج إلى تقديم شهاداتك الخاصة. توضح هذه المقالة خطوات تثبيت الشهادات على أجهزة IoT Edge.
لمعرفة المزيد حول الأنواع المختلفة من الشهادات وأدوارها، راجع فهم كيفية استخدام Azure IoT Edge للشهادات.
ملاحظة
يشير المصطلح "المرجع المصدق الجذر" المستخدم في جميع أنحاء هذه المقالة إلى أعلى شهادة عامة لسلسلة الشهادات لحل إنترنت الأشياء الخاص بك. لا تحتاج إلى استخدام الجذر المصدق لمرجع مصدق مشترك، أو جذر المرجع المصدق لمؤسستك. في كثير من الحالات ، هي في الواقع شهادة عامة CA وسيطة.
المتطلبات الأساسية
جهاز IoT Edge.
إذا لم يكن لديك جهاز IoT Edge تم إعداده، فيمكنك إنشاء جهاز في جهاز Azure الظاهري. اتبع الخطوات الواردة في إحدى مقالات التشغيل السريع لإنشاء جهاز Linux افتراضي أو إنشاء جهاز Windows ظاهري.
احصل على شهادة مرجع مصدق جذر (CA)، إما موقعة ذاتيا أو تم شراؤها من مرجع مصدق تجاري موثوق به مثل بالتيمور أو Verisign أو DigiCert أو GlobalSign.
إذا لم يكن لديك مرجع مصدق جذر حتى الآن، ولكنك تريد تجربة ميزات IoT Edge التي تتطلب شهادات إنتاج (مثل سيناريوهات البوابة)، فيمكنك إنشاء شهادات تجريبية لاختبار ميزات جهاز IoT Edge.
إنشاء شهادات الإنتاج
يجب عليك استخدام المرجع المصدق الخاص بك لإنشاء الملفات التالية:
- الجذر CA
- شهادة المرجع المصدق الخاصة بالجهاز
- مفتاح CA الخاص للجهاز
في هذه المقالة، ما نشير إليه باسم المرجع المصدق الجذر ليس المرجع المصدق الأعلى للمؤسسة. إنه المرجع المصدق الأعلى لسيناريو IoT Edge ، والذي تستخدمه وحدة محور IoT Edge ووحدات المستخدم وأي أجهزة مصب لإنشاء الثقة بين بعضها البعض.
ملاحظة
في الوقت الحالي ، يمنع وجود قيود في libiothsm استخدام الشهادات التي تنتهي صلاحيتها في أو بعد 1 يناير 2038.
للاطلاع على مثال لهذه الشهادات، راجع البرامج النصية التي تنشئ شهادات تجريبية في إدارة شهادات CA للاختبار للعينات والبرامج التعليمية.
تثبيت الشهادات على الجهاز
قم بتثبيت سلسلة الشهادات الخاصة بك على جهاز IoT Edge وقم بتكوين وقت تشغيل IoT Edge للإشارة إلى الشهادات الجديدة.
انسخ ملفات الشهادات والمفاتيح الثلاثة إلى جهاز IoT Edge الخاص بك.
إذا استخدمت نماذج البرامج النصية لإنشاء شهادات تجريبية، توجد ملفات الشهادات والمفاتيح الثلاثة في المسارات التالية:
- شهادة CA للجهاز:
<WRKDIR>\certs\iot-edge-device-MyEdgeDeviceCA-full-chain.cert.pem - الجهاز CA المفتاح الخاص:
<WRKDIR>\private\iot-edge-device-MyEdgeDeviceCA.key.pem - الجذر CA:
<WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem
يمكنك استخدام خدمة مثل Azure Key Vault أو وظيفة مثل بروتوكول النسخ الآمن لنقل ملفات الشهادة. إذا قمت بإنشاء الشهادات على جهاز IoT Edge نفسه، فيمكنك تخطي هذه الخطوة واستخدام المسار إلى دليل العمل.
إذا كنت تستخدم IoT Edge لنظام التشغيل Linux على Windows، فستحتاج إلى استخدام مفتاح SSH الموجود في ملف Azure IoT Edge id_rsa لمصادقة عمليات نقل الملفات بين نظام التشغيل المضيف والجهاز الظاهري Linux. استرجع عنوان IP الخاص بالجهاز الظاهري Linux باستخدام Get-EflowVmAddr الأمر. بعد ذلك، يمكنك إجراء SCP مصادق عليه باستخدام الأمر التالي:
C:\WINDOWS\System32\OpenSSH\scp.exe -i 'C:\Program Files\Azure IoT Edge\id_rsa' <PATH_TO_SOURCE_FILE> iotedge-user@<VM_IP>:<PATH_TO_FILE_DESTINATION>
تكوين IoT Edge باستخدام الشهادات الجديدة
افتح ملف التكوين الخفي لأمان IoT Edge:
/etc/iotedge/config.yamlقم بتعيين خصائص الشهادة في config.yaml إلى مسار URI للملف إلى ملفات الشهادة والمفاتيح الموجودة على جهاز IoT Edge. قم بإزالة
#الحرف قبل خصائص الشهادة لإلغاء التعليق على الأسطر الأربعة. تأكد من أن الشهادات: لا يحتوي السطر على مسافة بيضاء سابقة وأن العناصر المتداخلة يتم وضع مسافة بادئة لها بمسافتين. على سبيل المثال:certificates: device_ca_cert: "file:///<path>/<device CA cert>" device_ca_pk: "file:///<path>/<device CA key>" trusted_ca_certs: "file:///<path>/<root CA cert>"تأكد من أن المستخدم iotedge لديه أذونات قراءة/كتابة للدليل الذي يحمل الشهادات.
إذا كنت قد استخدمت أي شهادات أخرى ل IoT Edge على الجهاز من قبل، فاحذف الملفات الموجودة في الدليلين التاليين قبل بدء تشغيل IoT Edge أو إعادة تشغيله:
/var/lib/iotedge/hsm/certs/var/lib/iotedge/hsm/cert_keys
أعد تشغيل IoT Edge.
sudo iotedge system restart
افتح ملف التكوين الخفي لأمان IoT Edge:
/etc/aziot/config.tomlابحث عن المعلمة
trust_bundle_certفي بداية الملف. قم بإلغاء التعليق على هذا السطر ، وقم بتوفير ملف URI إلى شهادة CA الجذر على جهازك.trust_bundle_cert = "file:///<path>/<root CA cert>"ابحث عن المقطع
[edge_ca]في ملف config.toml. قم بإلغاء التعليق على الأسطر الموجودة في هذا القسم وقم بتوفير مسارات URI للملف للشهادة وملفات المفاتيح الموجودة على جهاز IoT Edge.[edge_ca] cert = "file:///<path>/<device CA cert>" pk = "file:///<path>/<device CA key>"تأكد من أن الخدمة لديها أذونات قراءة للدلائل التي تحمل الشهادات والمفاتيح.
- يجب أن يكون ملف المفتاح الخاص مملوكا لمجموعة aziotks .
- يجب أن تكون ملفات الشهادات مملوكة لمجموعة aziotcs .
تلميح
إذا كانت شهادة CA لجهازك للقراءة فقط، مما يعني أنك قمت بإنشائها ولا تريد أن تقوم خدمة IoT Edge بتدويرها، فقم بتعيين ملف المفتاح الخاص إلى الوضع 0440 وملف الشهادة إلى الوضع 0444. إذا قمت بإنشاء الملفات الأولية ثم قمت بتكوين خدمة الشهادة لتدوير شهادة CA للجهاز في المستقبل، فقم بتعيين ملف المفتاح الخاص إلى الوضع 0660 وملف الشهادة إلى الوضع 0664.
إذا كنت قد استخدمت أي شهادات أخرى ل IoT Edge على الجهاز من قبل، فاحذف الملفات الموجودة في الدليل التالي. سيقوم IoT Edge بإعادة إنشائها باستخدام شهادة CA الجديدة التي قدمتها.
/var/lib/aziot/certd/certs
تطبيق تغييرات التكوين.
sudo iotedge config apply
تخصيص عمر الشهادة
يقوم IoT Edge تلقائيا بإنشاء شهادات على الجهاز في عدة حالات، بما في ذلك:
- إذا لم تقم بتوفير شهادات الإنتاج الخاصة بك عند تثبيت IoT Edge وتوفيره، يقوم مدير أمان IoT Edge تلقائيا بإنشاء شهادة CA للجهاز. هذه الشهادة الموقعة ذاتيا مخصصة فقط لسيناريوهات التطوير والاختبار، وليس الإنتاج. تنتهي صلاحية هذه الشهادة بعد 90 يوما.
- يقوم مدير أمان IoT Edge أيضا بإنشاء شهادة CA لعبء العمل موقعة بواسطة شهادة CA للجهاز
لمزيد من المعلومات حول وظيفة الشهادات المختلفة على جهاز IoT Edge، راجع فهم كيفية استخدام Azure IoT Edge للشهادات.
بالنسبة لهاتين الشهادتين اللتين تم إنشاؤهما تلقائيا، يتوفر لديك خيار تعيين علامة في ملف التكوين لتكوين عدد الأيام طوال عمر الشهادات.
ملاحظة
هناك شهادة ثالثة يتم إنشاؤها تلقائيا يقوم مدير أمان IoT Edge بإنشائها ، وهي شهادة خادم IoT Edge المحوري. هذه الشهادة لها دائما عمر افتراضي يبلغ 30 يوما، ولكن يتم تجديدها تلقائيا قبل انتهاء صلاحيتها. لا تؤثر قيمة عمر CA التي تم إنشاؤها تلقائيا والتي تم تعيينها في ملف التكوين على هذه الشهادة.
عند انتهاء الصلاحية بعد العدد المحدد من الأيام ، يجب إعادة تشغيل IoT Edge لإعادة إنشاء شهادة CA للجهاز. لن يتم تجديد شهادة CA للجهاز تلقائيا.
لتكوين انتهاء صلاحية الشهادة إلى شيء آخر غير 90 يوما الافتراضي، أضف القيمة بالأيام إلى قسم الشهادات في ملف التكوين.
certificates: device_ca_cert: "<ADD URI TO DEVICE CA CERTIFICATE HERE>" device_ca_pk: "<ADD URI TO DEVICE CA PRIVATE KEY HERE>" trusted_ca_certs: "<ADD URI TO TRUSTED CA CERTIFICATES HERE>" auto_generated_ca_lifetime_days: <value>ملاحظة
في الوقت الحالي ، يمنع وجود قيود في libiothsm استخدام الشهادات التي تنتهي صلاحيتها في أو بعد 1 يناير 2038.
احذف محتويات
hsmالمجلد لإزالة أي شهادات تم إنشاؤها مسبقا./var/lib/iotedge/hsm/certs/var/lib/iotedge/hsm/cert_keys
أعد تشغيل خدمة IoT Edge.
sudo systemctl restart iotedgeقم بتأكيد إعداد مدى الحياة.
sudo iotedge check --verboseتحقق من مخرجات جاهزية الإنتاج: التحقق من الشهادات ، والذي يسرد عدد الأيام حتى تنتهي صلاحية شهادات CA للجهاز التي يتم إنشاؤها تلقائيا.
لتكوين انتهاء صلاحية الشهادة إلى شيء آخر غير 90 يوما الافتراضي، أضف القيمة بالأيام إلى قسم شهادة Edge CA (التشغيل السريع) من ملف التكوين.
[edge_ca] auto_generated_edge_ca_expiry_days = <value>احذف محتويات المجلدات
certdوالمجلداتkeydلإزالة أي شهادات تم إنشاؤها مسبقا:/var/lib/aziot/certd/certs/var/lib/aziot/keyd/keysتطبيق تغييرات التكوين.
sudo iotedge config applyقم بتأكيد إعداد العمر الافتراضي الجديد.
sudo iotedge check --verboseتحقق من مخرجات جاهزية الإنتاج: التحقق من الشهادات ، والذي يسرد عدد الأيام حتى تنتهي صلاحية شهادات CA للجهاز التي يتم إنشاؤها تلقائيا.
الخطوات التالية
يعد تثبيت الشهادات على جهاز IoT Edge خطوة ضرورية قبل نشر الحل الخاص بك في الإنتاج. تعرف على المزيد حول كيفية الاستعداد لنشر حل IoT Edge في الإنتاج.