إنشاء وتوفير أجهزة IoT Edge على نطاق واسع على Linux باستخدام شهادات X.509

ينطبق على: علامة اختيار IoT Edge 1.5 IoT Edge 1.5 علامة اختيار IoT Edge 1.4 IoT Edge 1.4

هام

IoT Edge 1.5 LTS وIoT Edge 1.4 LTS هي إصدارات مدعومة. IoT Edge 1.4 LTS هو نهاية العمر الافتراضي في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.

توفر هذه المقالة إرشادات شاملة للتزويد التلقائي لجهاز واحد أو أكثر من أجهزة Linux IoT Edge باستخدام شهادات X.509. يمكنك توفير أجهزة Azure IoT Edge تلقائيا باستخدام خدمة توفير جهاز Azure IoT Hub (DPS). إذا لم تكن على دراية بعملية التزويد التلقائي، فراجع نظرة عامة على التوفير قبل المتابعة.

المهام هي كما يلي:

  1. إنشاء الشهادات والمفاتيح.
  2. إنشاء تسجيل فردي لجهاز واحد أو تسجيل مجموعة لمجموعة من الأجهزة.
  3. تثبيت وقت تشغيل IoT Edge وتسجيل الجهاز باستخدام IoT Hub.

يعد استخدام شهادات X.509 كآلية إثبات طريقة ممتازة لتوسيع نطاق الإنتاج وتبسيط تزويد الأجهزة. عادة ما يتم ترتيب شهادات X.509 في سلسلة شهادات الثقة. بدءا من شهادة جذر موقعة ذاتيا أو موثوق بها، توقع كل شهادة في السلسلة الشهادة السفلية التالية. ينشئ هذا النمط سلسلة ثقة مفوضة من شهادة الجذر وصولا إلى كل شهادة وسيطة إلى شهادة جهاز انتقال البيانات النهائية النهائية المثبتة على جهاز.

تلميح

إذا كان جهازك يحتوي على وحدة أمان الأجهزة (HSM) مثل TPM 2.0، فإننا نوصي بتخزين مفاتيح X.509 بشكل آمن في HSM. تعرف على المزيد حول كيفية تنفيذ توفير اللمس الصفري على نطاق واسع الموضح في هذا المخطط باستخدام نموذج iotedge-tpm2cloud .

المتطلبات الأساسية

موارد السحابة

  • مركز IoT نشط
  • مثيل لخدمة توفير جهاز IoT Hub في Azure، مرتبط بمركز IoT الخاص بك
    • إذا لم يكن لديك مثيل خدمة تزويد الجهاز، يمكنك اتباع الإرشادات الواردة في إنشاء خدمة توفير جهاز IoT Hub جديدة وربط مركز IoT وأقسام خدمة تزويد الجهاز في التشغيل السريع لخدمة توفير جهاز IoT Hub.
    • بعد تشغيل خدمة توفير الجهاز، انسخ قيمة نطاق المعرف من صفحة النظرة العامة. يمكنك استخدام هذه القيمة عند تكوين وقت تشغيل IoT Edge.

متطلبات الجهاز

جهاز Linux فعلي أو ظاهري ليكون جهاز IoT Edge.

إنشاء شهادات هوية الجهاز

شهادة هوية الجهاز هي شهادة جهاز انتقال البيانات من الخادم تتصل من خلال سلسلة شهادات الثقة بشهادة المرجع المصدق X.509 الأعلى (CA). يجب أن يكون اسم شهادة هوية الجهاز (CN) معينا على معرف الجهاز الذي تريد أن يكون للجهاز في مركز IoT الخاص بك.

يتم استخدام شهادات هوية الجهاز فقط لتوفير جهاز IoT Edge ومصادقة الجهاز باستخدام Azure IoT Hub. إنهم لا يوقعون الشهادات، على عكس شهادات المرجع المصدق التي يقدمها جهاز IoT Edge إلى الوحدات النمطية أو أجهزة انتقال البيانات من الخادم للتحقق منها. لمزيد من المعلومات، راجع تفاصيل استخدام شهادة Azure IoT Edge.

بعد إنشاء شهادة هوية الجهاز، يجب أن يكون لديك ملفان: ملف .cer أو .pem يحتوي على الجزء العام من الشهادة، وملف .cer أو .pem مع المفتاح الخاص للشهادة. إذا كنت تخطط لاستخدام تسجيل المجموعة في DPS، فأنت بحاجة أيضا إلى الجزء العام من شهادة المرجع المصدق المتوسطة أو الجذر في نفس سلسلة الشهادات من الثقة.

تحتاج إلى الملفات التالية لإعداد التوفير التلقائي باستخدام X.509:

  • شهادة هوية الجهاز وشهادة المفتاح الخاص بها. يتم تحميل شهادة هوية الجهاز إلى DPS إذا قمت بإنشاء تسجيل فردي. يتم تمرير المفتاح الخاص إلى وقت تشغيل IoT Edge.
  • شهادة سلسلة كاملة، والتي يجب أن تحتوي على هوية الجهاز والشهادات المتوسطة عليها على الأقل. يتم تمرير شهادة السلسلة الكاملة إلى وقت تشغيل IoT Edge.
  • شهادة المرجع المصدق المتوسطة أو الجذر من سلسلة شهادات الثقة. يتم تحميل هذه الشهادة إلى DPS إذا قمت بإنشاء تسجيل مجموعة.

استخدام شهادات الاختبار (اختياري)

إذا لم يكن لديك مرجع مصدق متاح لإنشاء شهادات هوية جديدة وتريد تجربة هذا السيناريو، فإن مستودع Azure IoT Edge git يحتوي على البرامج النصية التي يمكنك استخدامها لإنشاء شهادات اختبار. تم تصميم هذه الشهادات لاختبار التطوير فقط، ويجب عدم استخدامها في الإنتاج.

لإنشاء شهادات اختبار، اتبع الخطوات الواردة في إنشاء شهادات تجريبية لاختبار ميزات جهاز IoT Edge. أكمل القسمين المطلوبين لإعداد البرامج النصية لإنشاء الشهادة وإنشاء شهادة المرجع المصدق الجذر. ثم اتبع الخطوات لإنشاء شهادة هوية الجهاز. عند الانتهاء، يجب أن يكون لديك سلسلة الشهادات التالية وزوج المفاتيح:

  • <WRKDIR>/certs/iot-edge-device-identity-<name>-full-chain.cert.pem
  • <WRKDIR>/private/iot-edge-device-identity-<name>.key.pem

تحتاج إلى هاتين الشهادتين على جهاز IoT Edge. إذا كنت ستستخدم التسجيل الفردي في DPS، فبادر بتحميل ملف .cert.pem. إذا كنت ستستخدم تسجيل المجموعة في DPS، فأنت بحاجة أيضا إلى شهادة CA وسيطة أو جذر في نفس سلسلة الشهادات من الثقة لتحميلها. إذا كنت تستخدم شهادات تجريبية، فاستخدم الشهادة <WRKDIR>/certs/azure-iot-test-only.root.ca.cert.pem لتسجيل المجموعة.

إنشاء تسجيل DPS

استخدم الشهادات والمفاتيح التي تم إنشاؤها لإنشاء تسجيل في DPS لجهاز IoT Edge واحد أو أكثر.

إذا كنت تبحث عن توفير جهاز IoT Edge واحد، فبادر بإنشاء تسجيل فردي. إذا كنت بحاجة إلى توفير أجهزة متعددة، فاتبع الخطوات لإنشاء تسجيل مجموعة DPS.

عند إنشاء تسجيل في DPS، لديك الفرصة للإعلان عن حالة الجهاز المزدوج الأولية. في الجهاز المزدوج، يمكنك تعيين العلامات لتجميع الأجهزة حسب أي مقياس تحتاجه في الحل الخاص بك، مثل المنطقة أو البيئة أو الموقع أو نوع الجهاز. يتم استخدام هذه العلامات لإنشاء عمليات نشر تلقائية.

لمزيد من المعلومات حول التسجيلات في خدمة توفير الجهاز، راجع كيفية إدارة تسجيلات الجهاز.

إنشاء تسجيل فردي ل DPS

تأخذ التسجيلات الفردية الجزء العام من شهادة هوية الجهاز وتطابق ذلك مع الشهادة على الجهاز.

تلميح

الخطوات الواردة في هذه المقالة مخصصة لمدخل Azure، ولكن يمكنك أيضا إنشاء عمليات تسجيل فردية باستخدام Azure CLI. لمزيد من المعلومات، راجع تسجيل az iot dps. كجزء من أمر CLI، استخدم العلامة الممكنة للحافة لتحديد أن التسجيل لجهاز IoT Edge.

  1. في مدخل Microsoft Azure، انتقل إلى مثيل خدمة توفير جهاز IoT Hub.

  2. ضمن Settings، حدد Manage enrollments.

  3. حدد Add individual enrollment ثم أكمل الخطوات التالية لتكوين التسجيل:

    • آلية: حدد X.509.

    • الشهادة الأساسية .pem أو ملف .cer: تحميل الملف العام من شهادة هوية الجهاز. إذا استخدمت البرامج النصية لإنشاء شهادة اختبار، فاختر الملف التالي:

      <WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pem

    • معرف جهاز IoT Hub: قم بتوفير معرف لجهازك إذا كنت ترغب في ذلك. يمكنك استخدام معرفات الجهاز لاستهداف جهاز فردي لنشر الوحدة النمطية. إذا لم توفر معرف جهاز، يتم استخدام الاسم الشائع (CN) في شهادة X.509.

    • جهاز IoT Edge: حدد True للإعلان عن أن التسجيل لجهاز IoT Edge.

    • حدد مراكز IoT التي يمكن تعيين هذا الجهاز إليها: اختر مركز IoT المرتبط الذي تريد توصيل جهازك به. يمكنك اختيار مراكز متعددة، وسيتم تعيين الجهاز لأحدها وفقا لنهج التخصيص المحدد.

    • حالة الجهاز المزدوج الأولية: أضف قيمة علامة لإضافتها إلى توأم الجهاز إذا كنت ترغب في ذلك. يمكنك استخدام العلامات لاستهداف مجموعات من الأجهزة للتوزيع التلقائي. على سبيل المثال:

      {
          "tags": {
             "environment": "test"
          },
          "properties": {
             "desired": {}
          }
      }
      
  4. حدد حفظ.

ضمن إدارة التسجيلات، يمكنك مشاهدة معرف التسجيل للتسجيل الذي أنشأته للتو. دون ذلك، حيث يمكن استخدامه عند توفير جهازك.

الآن بعد وجود تسجيل لهذا الجهاز، يمكن لوقت تشغيل IoT Edge توفير الجهاز تلقائيا أثناء التثبيت.

تثبيت IoT Edge

في هذا القسم، يمكنك إعداد جهاز Linux الظاهري أو الجهاز الفعلي ل IoT Edge. بعد ذلك، يمكنك تثبيت IoT Edge.

قم بتشغيل الأوامر التالية لإضافة مستودع الحزمة ثم إضافة مفتاح توقيع حزمة Microsoft إلى قائمة المفاتيح الموثوق بها.

هام

في 30 يونيو 2022 تم إيقاف Raspberry Pi OS Stretch من قائمة دعم نظام التشغيل من المستوى 1. لتجنب الثغرات الأمنية المحتملة، قم بتحديث نظام التشغيل المضيف إلى Bullseye.

يمكن إجراء التثبيت باستخدام بعض الأوامر. افتح محطة طرفية ثم قم بتشغيل الأوامر التالية:

  • 22.04:

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 20.04:

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    

لمزيد من المعلومات حول إصدارات نظام التشغيل، راجع الأنظمة الأساسية المدعومة من Azure IoT Edge.

إشعار

تخضع حزم برامج Azure IoT Edge لشروط الترخيص الموجودة في كل حزمة LICENSE (usr/share/doc/{package-name}أو الدليل). اقرأ شروط الترخيص قبل استخدام الحزمة. تركيب واستخدامك للحزمة يشكل قبولك لهذه الشروط. في حال عدم موافقتك على شروط الترخيص، فلا تستخدم هذه الحزمة.

ثبِّت محرك حاوية

يعتمد Azure IoT Edge على وقت تشغيل حاوية متوافق مع OCI. بالنسبة لسيناريوهات الإنتاج، نوصي باستخدام محرك Moby. محرك Moby هو محرك الحاوية المدعوم رسميا مع IoT Edge. تتوافق صور حاوية Docker CE/EE مع وقت تشغيل Moby. إذا كنت تستخدم محاذاة Ubuntu Core، يتم صيانة محاذاة Docker بواسطة Canonical ويتم دعمها لسيناريوهات الإنتاج.

ثبِّت محرك Moby.

sudo apt-get update; \
  sudo apt-get install moby-engine

بشكل افتراضي، لا يقوم محرك الحاوية بتعيين حدود حجم سجل الحاوية. مع مرور الوقت، يمكن أن يؤدي هذا إلى ملء الجهاز بالسجلات ونفاد مساحة القرص. ومع ذلك، يمكنك تكوين السجل الخاص بك لإظهاره محليا، على الرغم من أنه اختياري. لمعرفة المزيد حول تكوين التسجيل، راجع قائمة التحقق من نشر الإنتاج.

توضح لك الخطوات التالية كيفية تكوين الحاوية لاستخدام local برنامج تشغيل التسجيل كآلية تسجيل.

  1. إنشاء ملف تكوين Docker daemon الموجود أو تحريره

    sudo nano /etc/docker/daemon.json
    
  2. قم بتعيين برنامج تشغيل التسجيل الافتراضي إلى local برنامج تشغيل التسجيل كما هو موضح في المثال.

       {
          "log-driver": "local"
       }
    
  3. أعد تشغيل محرك الحاوية حتى تسري التغييرات.

    sudo systemctl restart docker
    

قم بتثبيت وقت تشغيل IoT Edge

توفر خدمة IoT Edge معايير الأمان وتحافظ عليها على جهاز IoT Edge. تبدأ الخدمة على كل تمهيد وتشغل الجهاز عن طريق بدء بقية وقت تشغيل IoT Edge.

إشعار

بدءا من الإصدار 1.2، تعالج خدمة هوية IoT توفير الهوية وإدارتها ل IoT Edge ومكونات الأجهزة الأخرى التي تحتاج إلى الاتصال ب IoT Hub.

تمثل الخطوات الواردة في هذا القسم العملية النموذجية لتثبيت أحدث إصدار من IoT Edge على جهاز متصل بالإنترنت. إذا كنت بحاجة إلى تثبيت إصدار معين، مثل إصدار ما قبل الإصدار، أو تحتاج إلى التثبيت أثناء عدم الاتصال، فاتبع خطوات تثبيت الإصدار غير المتصل أو المحدد لاحقا في هذه المقالة.

تلميح

إذا كان لديك بالفعل جهاز IoT Edge يعمل بإصدار قديم وتريد الترقية إلى أحدث إصدار، فاستخدم الخطوات الواردة في تحديث البرنامج الخفي لأمان IoT Edge ووقت التشغيل. تختلف الإصدارات اللاحقة بشكل كاف عن الإصدارات السابقة من IoT Edge التي تعتبر خطوات محددة ضرورية للترقية.

تثبيت أحدث إصدار من IoT Edge وحزمة خدمة هوية IoT (إذا لم تكن محدثا بالفعل):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

تتضمن الحزمة الاختيارية defender-iot-micro-agent-edge عامل Microsoft Defender لأمان IoT الصغير الذي يوفر رؤية نقطة النهاية في إدارة وضع الأمان والثغرات الأمنية والكشف عن التهديدات وإدارة الأسطول والمزيد لمساعدتك على تأمين أجهزة IoT Edge. يوصى بتثبيت العامل الصغير مع عامل Edge لتمكين مراقبة الأمان وتصلب أجهزة Edge. لمعرفة المزيد حول Microsoft Defender for IoT، راجع ما هو Microsoft Defender for IoT لمنشئي الأجهزة.

تزويد الجهاز بهويته السحابية

بمجرد تثبيت وقت التشغيل على جهازك، قم بتكوين الجهاز بالمعلومات التي يستخدمها للاتصال بخدمة توفير الجهاز وIoT Hub.

جهز المعلومات التالية:

  • قيمة نطاق معرف DPS. يمكنك استرداد هذه القيمة من صفحة النظرة العامة لمثيل DPS في مدخل Microsoft Azure.
  • ملف سلسلة شهادات هوية الجهاز على الجهاز.
  • ملف مفتاح هوية الجهاز على الجهاز.

إنشاء ملف تكوين لجهازك استنادا إلى ملف قالب يتم توفيره كجزء من تثبيت IoT Edge.

sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml

افتح ملف التكوين على جهاز IoT Edge.

sudo nano /etc/aziot/config.toml

ابحث عن قسم Provisioning في الملف. قم بإلغاء التعليق على خطوط تزويد DPS بشهادة X.509، وتأكد من التعليق على أي أسطر توفير أخرى.

# DPS provisioning with X.509 certificate
[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "SCOPE_ID_HERE"

# Uncomment to send a custom payload during DPS registration
# payload = { uri = "PATH_TO_JSON_FILE" }

[provisioning.attestation]
method = "x509"
registration_id = "REGISTRATION_ID_HERE"

identity_cert = "DEVICE_IDENTITY_CERTIFICATE_HERE" # For example, "file:///var/aziot/device-id.pem"
identity_pk = "DEVICE_IDENTITY_PRIVATE_KEY_HERE"   # For example, "file:///var/aziot/device-id.key"

# auto_reprovisioning_mode = Dynamic
  1. قم بتحديث قيمة id_scope بمعرف النطاق الذي نسخته من مثيل DPS.

  2. registration_id قم بتوفير للجهاز، وهو المعرف الذي يحتوي عليه الجهاز في IoT Hub. يجب أن يتطابق معرف التسجيل مع الاسم الشائع (CN) لشهادة الهوية.

  3. قم بتحديث قيم identity_cert و identity_pk مع الشهادة ومعلومات المفتاح.

    يمكن توفير قيمة شهادة الهوية كملف URI، أو يمكن إصدارها ديناميكيا باستخدام EST أو مرجع مصدق محلي. قم بإلغاء التعليق على سطر واحد فقط، استنادا إلى التنسيق الذي تختار استخدامه.

    يمكن توفير قيمة المفتاح الخاص للهوية كملف URI أو PKCS#11 URI. قم بإلغاء التعليق على سطر واحد فقط، استنادا إلى التنسيق الذي تختار استخدامه.

    إذا كنت تستخدم أي عناوين URL ل PKCS#11، فابحث عن قسم PKCS#11 في ملف التكوين وقدم معلومات حول تكوين PKCS#11.

    لمزيد من المعلومات حول الشهادات، راجع إدارة شهادات IoT Edge.

    لمزيد من المعلومات حول إعدادات تكوين التوفير، راجع تكوين إعدادات جهاز IoT Edge.

  4. اختياريا، ابحث عن قسم وضع إعادة التزويد التلقائي في الملف. استخدم المعلمة auto_reprovisioning_mode لتكوين سلوك إعادة توفير جهازك. ديناميكي - إعادة توفير عندما يكتشف الجهاز أنه قد تم نقله من مركز IoT إلى آخر. هذا هو الوضع الافتراضي. AlwaysOnStartup - إعادة التوفير عند إعادة تشغيل الجهاز أو حدوث عطل يؤدي إلى إعادة تشغيل البرامج الخفية. OnErrorOnly - لا تقم أبدا بتشغيل إعادة توفير الجهاز تلقائيا. يحتوي كل وضع على جهاز احتياطي ضمني لإعادة توفير الجهاز إذا كان الجهاز غير قادر على الاتصال ب IoT Hub أثناء توفير الهوية بسبب أخطاء الاتصال. لمزيد من المعلومات، راجع مفاهيم إعادة توفير جهاز IoT Hub.

  5. اختياريا، قم بإلغاء تعليق المعلمة payload لتحديد المسار إلى ملف JSON محلي. يتم إرسال محتويات الملف إلى DPS كبيانات إضافية عند تسجيل الجهاز. هذا مفيد للتخصيص المخصص. على سبيل المثال، إذا كنت تريد تخصيص أجهزتك استنادا إلى معرف نموذج IoT أجهزة التوصيل و التشغيل دون تدخل بشري.

  6. احفظ الملف وأغلقه.

تطبيق تغييرات التكوين التي أجريتها على IoT Edge.

sudo iotedge config apply

التحقق من التثبيت الناجح

إذا بدأ وقت التشغيل بنجاح، يمكنك الانتقال إلى IoT Hub والبدء في نشر وحدات IoT Edge على جهازك.

يمكنك التحقق من استخدام التسجيل الفردي الذي قمت بإنشائه في خدمة توفير الجهاز. انتقل إلى مثيل خدمة توفير الجهاز في مدخل Microsoft Azure. افتح تفاصيل التسجيل للتسجيل الفردي الذي قمت بإنشائه. لاحظ أنه تم تعيين حالة التسجيل وإدراج معرف الجهاز.

استخدم الأوامر التالية على جهازك للتحقق من تثبيت IoT Edge وبدء تشغيله بنجاح.

تحقق من حالة خدمة IoT Edge.

sudo iotedge system status

فحص سجلات الخدمة.

sudo iotedge system logs

سرد الوحدات النمطية قيد التشغيل.

sudo iotedge list

الخطوات التالية

تتيح لك عملية تسجيل خدمة توفير الجهاز تعيين معرف الجهاز وعلامات الجهاز المزدوجة في نفس الوقت الذي تقوم فيه بتوفير الجهاز الجديد. يمكنك استخدام هذه القيم لاستهداف أجهزة فردية أو مجموعات من الأجهزة باستخدام الإدارة التلقائية للأجهزة. تعرف على كيفية نشر ومراقبة وحدات IoT Edge على نطاق واسع باستخدام مدخل Microsoft Azure أو باستخدام Azure CLI.