البرنامج التعليمي: إنشاء الشهادات وتحميلها للاختبار

يمكنك استخدام شهادات X.509 لمصادقة الأجهزة إلى مركز IoT. بالنسبة لبيئات الإنتاج، نوصي بشراء شهادة المرجع المصدق X.509 من مورد خدمات شهادات احترافي. يمكنك بعد ذلك إصدار شهادات داخل مؤسستك من مرجع مصدق داخلي مدار ذاتيا (CA) متسلسل إلى شهادة المرجع المصدق المشتراة كجزء من استراتيجية شاملة للبنية الأساسية للمفتاح العام (PKI). لمزيد من المعلومات حول الحصول على شهادة المرجع المصدق X.509 من مورد خدمات الشهادات المهنية، راجع قسم الحصول على شهادة المرجع المصدق X.509 من أجهزة المصادقة باستخدام شهادات المرجع المصدق X.509.

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

هام

لا نوصي باستخدام الشهادات الموقعة ذاتيا لبيئات الإنتاج. يتم تقديم هذا البرنامج التعليمي لأغراض العرض التوضيحي فقط.

يستخدم البرنامج التعليمي التالي OpenSSL وOpenSSL Cookbook لوصف كيفية إنجاز المهام التالية:

  • إنشاء مرجع مصدق جذر داخلي (CA) وشهادة المرجع المصدق الجذر
  • إنشاء مرجع مصدق ثانوي داخلي وشهادة CA تابعة، موقعة من قبل شهادة المرجع المصدق الجذر الداخلي
  • تحميل شهادة المرجع المصدق التابعة إلى مركز IoT لأغراض الاختبار
  • استخدم المرجع المصدق التابع لإنشاء شهادات العميل لأجهزة IoT التي تريد اختبارها باستخدام مركز IoT

إشعار

توفر Microsoft برامج PowerShell وBash النصية لمساعدتك على فهم كيفية إنشاء شهادات X.509 الخاصة بك ومصادقتها إلى مركز IoT. يتم تضمين البرامج النصية مع Azure IoT Hub Device SDK ل C. يتم توفير البرامج النصية لأغراض العرض التوضيحي فقط. يجب عدم استخدام الشهادات التي تم إنشاؤها للإنتاج. تحتوي هذه الشهادات على كلمات مرور بترميز ثابت ("1234") وتنتهي صلاحيتها بعد 30 يوماً. يجب عليك استخدام أفضل الممارسات الخاصة بك لإنشاء الشهادة وإدارة مدى الحياة في بيئة إنتاج. لمزيد من المعلومات، راجع إدارة شهادات CA الاختبارية للعينات والبرامج التعليمية في مستودع GitHub ل Azure IoT Hub Device SDK ل C.

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

  • اشتراك Azure. في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

  • مركز IoT في اشتِراك Azure الخاص بك. إذا لم تكن لديك مركز بعد، فإنه يمكنك اتباع الخطوات الواردة في إنشاء مركز IoT.

  • أحدث إصدار من Git. تأكد من إضافة Git إلى متغيرات البيئة التي يمكن الوصول إليها من نافذة الأمر. راجع أدوات عميل Software Freedom Conservancy's Git للحصول على أحدث إصدار من أدوات git للتثبيت، والتي تتضمن Git Bash، وهو تطبيق سطر الأوامر الذي يمكن استخدامه للتفاعل مع مستودع Git المحلي خاصتك.

  • تثبيت OpenSSL. على Windows، يتضمن تثبيت Git تثبيت OpenSSL. يمكنك الوصول إلى OpenSSL من موجه Git Bash. للتحقق من تثبيت OpenSSL، افتح موجه Git Bash وأدخل openssl version.

    إشعار

    ما لم تكن على دراية ب OpenSSL وقمت بتثبيته بالفعل على جهاز Windows، نوصي باستخدام OpenSSL من موجه Git Bash. بدلا من ذلك، يمكنك اختيار تنزيل التعليمات البرمجية المصدر وإنشاء OpenSSL. لمعرفة المزيد، راجع صفحة تنزيلات OpenSSL. أو يمكنك تنزيل OpenSSL الذي تم إنشاؤه مسبقا من جهة خارجية. لمعرفة المزيد، راجع OpenSSL wiki. لا تقدم Microsoft أي ضمانات حول صلاحية الحزم التي تم تنزيلها من جهات خارجية. إذا اخترت إنشاء OpenSSL أو تنزيله، فتأكد من إمكانية الوصول إلى ثنائي OpenSSL في المسار الخاص بك ومن OPENSSL_CNF تعيين متغير البيئة إلى مسار ملف openssl.cnf .

إنشاء مرجع مصدق جذري

يجب أولا إنشاء مرجع مصدق جذر داخلي (CA) وشهادة المرجع المصدق الجذر الموقعة ذاتيا لتكون بمثابة نقطة ارتساء ثقة يمكنك من خلالها إنشاء شهادات أخرى للاختبار. يتم تخزين الملفات المستخدمة لإنشاء المرجع المصدق الجذر الداخلي وصيانته في بنية مجلد وتهيئتها كجزء من هذه العملية. نفذ الخطوات التالية من أجل:

  • إنشاء وتهيئة المجلدات والملفات المستخدمة من قبل المرجع المصدق الجذر الخاص بك
  • إنشاء ملف تكوين يستخدمه OpenSSL لتكوين المرجع المصدق الجذر والشهادات التي تم إنشاؤها باستخدام المرجع المصدق الجذر الخاص بك
  • طلب وإنشاء شهادة CA موقعة ذاتيا تعمل كشهادة المرجع المصدق الجذر الخاص بك
  1. ابدأ نافذة Git Bash وشغل الأمر التالي، واستبدل {base_dir} بالدليل المطلوب لإنشاء الشهادات في هذا البرنامج التعليمي.

    cd {base_dir}
    
  2. في نافذة Git Bash، قم بتشغيل الأوامر التالية، واحدا تلو الآخر. تنشئ هذه الخطوة بنية الدليل التالية وملفات الدعم للمرجع المصدق الجذر.

    الدليل أو الملف ‏‏الوصف
    rootca الدليل الجذر للمرجع المصدق الجذر.
    rootca/certs الدليل الذي يتم فيه إنشاء شهادات المرجع المصدق للمرجع المصدق الجذر وتخزينها.
    rootca/db الدليل الذي يتم فيه تخزين قاعدة بيانات الشهادة وملفات الدعم للمرجع المصدق الجذر.
    rootca/db/index قاعدة بيانات الشهادة ل CA الجذر. touch ينشئ الأمر ملفا بدون أي محتوى، لاستخدامه لاحقا. قاعدة بيانات الشهادة هي ملف نصي عادي يديره OpenSSL يحتوي على معلومات حول الشهادات الصادرة. لمزيد من المعلومات حول قاعدة بيانات الشهادة ، راجع الصفحة اليدوية openssl-ca .
    rootca/db/serial ملف يستخدم لتخزين الرقم التسلسلي للشهادة التالية التي سيتم إنشاؤها للمرجع المصدق الجذر. openssl يقوم الأمر بإنشاء رقم عشوائي 16 بايت بتنسيق سداسي عشري، ثم يخزنه في هذا الملف لتهيئة الملف لإنشاء شهادة المرجع المصدق الجذر.
    rootca/db/crlnumber ملف يستخدم لتخزين الأرقام التسلسلية للشهادات التي تم إبطالها الصادرة عن المرجع المصدق الجذر. يقوم echo الأمر بتوجيه نموذج رقم تسلسلي، 1001، إلى الملف.
    rootca/private يتم تخزين الدليل الذي يتم فيه تخزين الملفات الخاصة للمرجع المصدق الجذر، بما في ذلك المفتاح الخاص.
    يجب تأمين الملفات الموجودة في هذا الدليل وحمايتها.
    mkdir rootca
    cd rootca
    mkdir certs db private
    chmod 700 private
    touch db/index
    openssl rand -hex 16 > db/serial
    echo 1001 > db/crlnumber
    
  3. إنشاء ملف نصي باسم rootca.conf في rootca الدليل الذي تم إنشاؤه في الخطوة السابقة. افتح هذا الملف في محرر نص، ثم انسخ إعدادات تكوين OpenSSL التالية واحفظها في هذا الملف.

    يوفر الملف OpenSSL بالقيم المطلوبة لتكوين المرجع المصدق الجذري للاختبار. على سبيل المثال، يقوم الملف بتكوين مرجع مصدق جذر يسمى rootca باستخدام الدلائل والملفات التي تم إنشاؤها في الخطوات السابقة. يوفر الملف أيضا إعدادات التكوين ل:

    • نهج المرجع المصدق المستخدم من قبل المرجع المصدق الجذر لحقول الاسم المميز للشهادة (DN)
    • طلبات الشهادة التي تم إنشاؤها بواسطة المرجع المصدق الجذر
    • ملحقات X.509 المطبقة على شهادات المرجع المصدق الجذر وشهادات المرجع المصدق التابعة وشهادات العميل الصادرة عن المرجع المصدق الجذر

    إشعار

    home يتم تعيين السمة ca_default في القسم إلى ../rootca لأنه يتم استخدام ملف التكوين هذا أيضا عند إنشاء الشهادة لمرجع مصدق ثانوي. يسمح المسار النسبي المحدد ل OpenSSL بالانتقال من مجلد المرجع المصدق التابع إلى مجلد المرجع المصدق الجذر أثناء هذه العملية.

    لمزيد من المعلومات حول بناء جملة ملفات تكوين OpenSSL، راجع صفحة التكوين اليدوية في وثائق OpenSSL.

    [default]
    name                     = rootca
    domain_suffix            = exampledomain.com
    aia_url                  = http://$name.$domain_suffix/$name.crt
    crl_url                  = http://$name.$domain_suffix/$name.crl
    default_ca               = ca_default
    name_opt                 = utf8,esc_ctrl,multiline,lname,align
    
    [ca_dn]
    commonName               = "rootca_common_name"
    
    [ca_default]
    home                     = ../rootca
    database                 = $home/db/index
    serial                   = $home/db/serial
    crlnumber                = $home/db/crlnumber
    certificate              = $home/$name.crt
    private_key              = $home/private/$name.key
    RANDFILE                 = $home/private/random
    new_certs_dir            = $home/certs
    unique_subject           = no
    copy_extensions          = none
    default_days             = 3650
    default_crl_days         = 365
    default_md               = sha256
    policy                   = policy_c_o_match
    
    [policy_c_o_match]
    countryName              = optional
    stateOrProvinceName      = optional
    organizationName         = optional
    organizationalUnitName   = optional
    commonName               = supplied
    emailAddress             = optional
    
    [req]
    default_bits             = 2048
    encrypt_key              = yes
    default_md               = sha256
    utf8                     = yes
    string_mask              = utf8only
    prompt                   = no
    distinguished_name       = ca_dn
    req_extensions           = ca_ext
    
    [ca_ext]
    basicConstraints         = critical,CA:true
    keyUsage                 = critical,keyCertSign,cRLSign
    subjectKeyIdentifier     = hash
    
    [sub_ca_ext]
    authorityKeyIdentifier   = keyid:always
    basicConstraints         = critical,CA:true,pathlen:0
    extendedKeyUsage         = clientAuth,serverAuth
    keyUsage                 = critical,keyCertSign,cRLSign
    subjectKeyIdentifier     = hash
    
    [client_ext]
    authorityKeyIdentifier   = keyid:always
    basicConstraints         = critical,CA:false
    extendedKeyUsage         = clientAuth
    keyUsage                 = critical,digitalSignature
    subjectKeyIdentifier     = hash
    
  4. في نافذة Git Bash، قم بتشغيل الأمر التالي لإنشاء طلب توقيع شهادة (CSR) في rootca الدليل ومفتاح خاص في rootca/private الدليل. لمزيد من المعلومات حول الأمر OpenSSL req ، راجع الصفحة اليدوية openssl-req في وثائق OpenSSL.

    إشعار

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

    winpty openssl req -new -config rootca.conf -out rootca.csr -keyout private/rootca.key
    

    تتم مطالبتك بإدخال عبارة مرور PEM، كما هو موضح في المثال التالي، لملف المفتاح الخاص. أدخل عبارة مرور وأكدها لإنشاء مفتاحك الخاص وCSR.

    Enter PEM pass phrase:
    Verifying - Enter PEM pass phrase:
    -----
    

    تأكد من أن ملف CSR، rootca.csr، موجود في rootca الدليل وملف المفتاح الخاص، rootca.key، موجود في الدليل الفرعي قبل المتابعة private .

  5. في نافذة Git Bash، قم بتشغيل الأمر التالي لإنشاء شهادة المرجع المصدق الجذر الموقعة ذاتيا. يطبق ca_ext الأمر ملحقات ملف التكوين على الشهادة. تشير هذه الملحقات إلى أن الشهادة مخصصة لمرجع مصدق جذري ويمكن استخدامها لتوقيع الشهادات وقوائم إبطال الشهادات (CRLs). لمزيد من المعلومات حول الأمر OpenSSL ca ، راجع الصفحة اليدوية openssl-ca في وثائق OpenSSL.

    winpty openssl ca -selfsign -config rootca.conf -in rootca.csr -out rootca.crt -extensions ca_ext
    

    تتم مطالبتك بتوفير عبارة مرور PEM، كما هو موضح في المثال التالي، لملف المفتاح الخاص. بعد توفير عبارة المرور، ينشئ OpenSSL شهادة، ثم يطالبك بتوقيع الشهادة وتثبيتها لمرجع مصدق الجذر الخاص بك. حدد y لكلا المطالبتين لإنشاء الشهادة الموقعة ذاتيا لمرجع مصدق الجذر الخاص بك.

    Using configuration from rootca.conf
    Enter pass phrase for ../rootca/private/rootca.key:
    Check that the request matches the signature
    Signature ok
    Certificate Details:
        {Details omitted from output for clarity}
    Certificate is to be certified until Mar 24 18:51:41 2033 GMT (3650 days)
    Sign the certificate? [y/n]:
    
    
    1 out of 1 certificate requests certified, commit? [y/n]
    Write out database with 1 new entries
    Data Base Updated
    

    بعد أن يقوم OpenSSL بتحديث قاعدة بيانات الشهادة، تأكد من وجود كل من ملف الشهادة في rootca.crtrootca الدليل وملف شهادة PEM (.pem) للشهادة في rootca/certs الدليل. يطابق اسم ملف .pem الرقم التسلسلي لشهادة المرجع المصدق الجذر.

إنشاء مرجع مصدق تابع

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

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

  • إنشاء وتهيئة المجلدات والملفات المستخدمة من قبل المرجع المصدق التابع
  • إنشاء ملف تكوين يستخدمه OpenSSL لتكوين المرجع المصدق التابع والشهادات التي تم إنشاؤها باستخدام المرجع المصدق التابع
  • طلب وإنشاء شهادة CA موقعة من المرجع المصدق الجذر الخاص بك والتي تعمل كشهادة المرجع المصدق التابعة
  1. ارجع إلى الدليل الأساسي الذي يحتوي على rootca الدليل. على سبيل المثال، يوجد كل من المرجع المصدق الجذر و CA التابع في نفس الدليل الأساسي.

    cd ..
    
  2. في نافذة Git Bash، قم بتشغيل الأوامر التالية، واحدا تلو الآخر.

    تنشئ هذه الخطوة بنية دليل وملفات دعم للمرجع المصدق التابع مشابهة لبنية المجلد والملفات التي تم إنشاؤها للمرجع المصدق الجذر في القسم السابق.

    mkdir subca
    cd subca
    mkdir certs db private
    chmod 700 private
    touch db/index
    openssl rand -hex 16 > db/serial
    echo 1001 > db/crlnumber
    
  3. إنشاء ملف نصي باسم subca.conf في subca الدليل الذي تم إنشاؤه في الخطوة السابقة. افتح هذا الملف في محرر نص، ثم انسخ إعدادات تكوين OpenSSL التالية واحفظها في هذا الملف.

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

    لمزيد من المعلومات حول بناء جملة ملفات تكوين OpenSSL، راجع الصفحة اليدوية الرئيسية للتكوين في وثائق OpenSSL.

    [default]
    name                     = subca
    domain_suffix            = exampledomain.com
    aia_url                  = http://$name.$domain_suffix/$name.crt
    crl_url                  = http://$name.$domain_suffix/$name.crl
    default_ca               = ca_default
    name_opt                 = utf8,esc_ctrl,multiline,lname,align
    
    [ca_dn]
    commonName               = "subca_common_name"
    
    [ca_default]
    home                     = ../subca
    database                 = $home/db/index
    serial                   = $home/db/serial
    crlnumber                = $home/db/crlnumber
    certificate              = $home/$name.crt
    private_key              = $home/private/$name.key
    RANDFILE                 = $home/private/random
    new_certs_dir            = $home/certs
    unique_subject           = no
    copy_extensions          = copy
    default_days             = 365
    default_crl_days         = 90
    default_md               = sha256
    policy                   = policy_c_o_match
    
    [policy_c_o_match]
    countryName              = optional
    stateOrProvinceName      = optional
    organizationName         = optional
    organizationalUnitName   = optional
    commonName               = supplied
    emailAddress             = optional
    
    [req]
    default_bits             = 2048
    encrypt_key              = yes
    default_md               = sha256
    utf8                     = yes
    string_mask              = utf8only
    prompt                   = no
    distinguished_name       = ca_dn
    req_extensions           = ca_ext
    
    [ca_ext]
    basicConstraints         = critical,CA:true
    keyUsage                 = critical,keyCertSign,cRLSign
    subjectKeyIdentifier     = hash
    
    [sub_ca_ext]
    authorityKeyIdentifier   = keyid:always
    basicConstraints         = critical,CA:true,pathlen:0
    extendedKeyUsage         = clientAuth,serverAuth
    keyUsage                 = critical,keyCertSign,cRLSign
    subjectKeyIdentifier     = hash
    
    [client_ext]
    authorityKeyIdentifier   = keyid:always
    basicConstraints         = critical,CA:false
    extendedKeyUsage         = clientAuth
    keyUsage                 = critical,digitalSignature
    subjectKeyIdentifier     = hash
    
  4. في نافذة Git Bash، قم بتشغيل الأوامر التالية لإنشاء مفتاح خاص وطلب توقيع شهادة (CSR) في دليل CA التابع.

    winpty openssl req -new -config subca.conf -out subca.csr -keyout private/subca.key
    

    تتم مطالبتك بإدخال عبارة مرور PEM، كما هو موضح في المثال التالي، لملف المفتاح الخاص. أدخل عبارة مرور وتحقق منها لإنشاء مفتاحك الخاص وCSR.

    Enter PEM pass phrase:
    Verifying - Enter PEM pass phrase:
    -----
    

    تأكد من وجود ملف subca.csr CSR في دليل CA التابع وملف subca.key المفتاح الخاص موجود في الدليل الفرعي قبل المتابعة private .

  5. في نافذة Git Bash، قم بتشغيل الأمر التالي لإنشاء شهادة CA تابعة في دليل CA التابع. يطبق sub_ca_ext الأمر ملحقات ملف التكوين على الشهادة. تشير هذه الملحقات إلى أن الشهادة مخصصة لمرجع مصدق ثانوي ويمكن استخدامها أيضا لتوقيع الشهادات وقوائم إبطال الشهادات (CRLs). على عكس شهادة المرجع المصدق الجذر، هذه الشهادة غير موقعة ذاتيا. بدلا من ذلك، يتم توقيع شهادة المرجع المصدق التابعة مع شهادة المرجع المصدق الجذر، وإنشاء سلسلة شهادات مشابهة لما قد تستخدمه للبنية الأساسية للمفتاح العام (PKI). ثم يتم استخدام شهادة المرجع المصدق التابعة لتوقيع شهادات العميل لاختبار أجهزتك.

    winpty openssl ca -config ../rootca/rootca.conf -in subca.csr -out subca.crt -extensions sub_ca_ext
    

    تتم مطالبتك بإدخال عبارة المرور، كما هو موضح في المثال التالي، لملف المفتاح الخاص ب CA الجذر الخاص بك. بعد إدخال عبارة المرور، يقوم OpenSSL بإنشاء وعرض تفاصيل الشهادة، ثم يطالبك بتوقيع الشهادة وتثبيتها لمرجع مصدق ثانوي. حدد y لكلا المطالبتين لإنشاء الشهادة لمرجع مصدق ثانوي.

    Using configuration from rootca.conf
    Enter pass phrase for ../rootca/private/rootca.key:
    Check that the request matches the signature
    Signature ok
    Certificate Details:
        {Details omitted from output for clarity}
    Certificate is to be certified until Mar 24 18:55:00 2024 GMT (365 days)
    Sign the certificate? [y/n]:
    
    
    1 out of 1 certificate requests certified, commit? [y/n]
    Write out database with 1 new entries
    Data Base Updated
    

    بعد قيام OpenSSL بتحديث قاعدة بيانات الشهادة، تأكد من وجود ملف subca.crt الشهادة في دليل المرجع المصدق التابع وأن ملف شهادة PEM (.pem) للشهادة موجود في rootca/certs الدليل. يطابق اسم ملف .pem الرقم التسلسلي لشهادة المرجع المصدق التابعة.

تسجيل شهادة المرجع المصدق التابعة إلى مركز IoT الخاص بك

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

  1. في مدخل Microsoft Azure، انتقل إلى مركز IoT وحدد Certificates من قائمة الموارد، ضمن Security settings.

  2. حدد Add من شريط الأوامر لإضافة شهادة CA جديدة.

  3. أدخل اسم عرض لشهادة المرجع المصدق التابعة في حقل اسم الشهادة.

  4. حدد ملف شهادة PEM (.pem) لشهادة المرجع المصدق التابعة من rootca/certs الدليل لإضافته في حقل ملف Certificate .pem أو .cer.

  5. حدد المربع بجوار تعيين حالة الشهادة إلى تم التحقق منه عند التحميل.

    لقطة شاشة توضح كيفية التحقق تلقائيا من حالة الشهادة عند التحميل.

  6. حدد حفظ.

يتم عرض شهادة المرجع المصدق التابعة التي تم تحميلها مع تعيين حالتها على Verified في علامة التبويب Certificates في جزء العمل.

إنشاء شهادة عميل لجهاز

بعد إنشاء المرجع المصدق التابع، يمكنك إنشاء شهادات العميل لأجهزتك. تستخدم الملفات والمجلدات التي تم إنشاؤها للمرجع المصدق التابع لتخزين CSR والمفتاح الخاص وملفات الشهادات لشهادات العميل.

يجب أن تحتوي شهادة العميل على قيمة حقل الاسم المشترك للموضوع (CN) المعين إلى قيمة معرف الجهاز المستخدم عند تسجيل الجهاز المقابل في Azure IoT Hub.

نفذ الخطوات التالية من أجل:

  • إنشاء مفتاح خاص وطلب توقيع شهادة (CSR) لشهادة عميل
  • إنشاء شهادة عميل موقعة من قبل شهادة المرجع المصدق التابعة
  1. في نافذة Git Bash، تأكد من أنك لا تزال في subca الدليل.

  2. في نافذة Git Bash، قم بتشغيل الأوامر التالية واحدا تلو الآخر. استبدل العنصر النائب باسم لجهاز IoT الخاص بك، على سبيل المثال testdevice. تنشئ هذه الخطوة المفتاح الخاص وCSR لشهادة العميل.

    تنشئ هذه الخطوة مفتاحا خاصا ل RSA 2048 بت لشهادة العميل، ثم تنشئ طلب توقيع شهادة (CSR) باستخدام هذا المفتاح الخاص.

    winpty openssl genpkey -out private/<DEVICE_NAME>.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048
    winpty openssl req -new -key private/<DEVICE_NAME>.key -out <DEVICE_NAME>.csr
    
  3. عند المطالبة، قم بتوفير تفاصيل الشهادة كما هو موضح في المثال التالي.

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

    بعد توفير تفاصيل الشهادة، يقوم OpenSSL بإنشاء وعرض تفاصيل الشهادة، ثم يطالبك بتوقيع الشهادة وتثبيتها لمرجع مصدق ثانوي. حدد y لكلا المطالبتين لإنشاء شهادة المرجع المصدق التابع.

    -----
    Country Name (2 letter code) [XX]:.
    State or Province Name (full name) []:.
    Locality Name (eg, city) [Default City]:.
    Organization Name (eg, company) [Default Company Ltd]:.
    Organizational Unit Name (eg, section) []:
    Common Name (eg, your name or your server hostname) []:'<DEVICE_NAME>'
    Email Address []:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    
    

    تأكد من وجود ملف CSR في دليل CA التابع وملف المفتاح الخاص موجود في الدليل الفرعي قبل المتابعة private . لمزيد من المعلومات حول تنسيقات CSR وملفات المفاتيح الخاصة، راجع شهادات X.509.

  4. في نافذة Git Bash، قم بتشغيل الأمر التالي، واستبدل العناصر النائبة لاسم الجهاز بنفس الاسم الذي استخدمته في الخطوات السابقة.

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

    winpty openssl ca -config subca.conf -in <DEVICE_NAME>.csr -out <DEVICE_NAME>.crt -extensions client_ext
    

    تتم مطالبتك بإدخال عبارة المرور، كما هو موضح في المثال التالي، لملف المفتاح الخاص للمرجع المصدق التابع. بعد إدخال عبارة المرور، يقوم OpenSSL بإنشاء وعرض تفاصيل الشهادة، ثم يطالبك بتوقيع شهادة العميل وتثبيتها لجهازك. حدد y لكلا المطالبتين لإنشاء شهادة العميل.

    Using configuration from subca.conf
    Enter pass phrase for ../subca/private/subca.key:
    Check that the request matches the signature
    Signature ok
    Certificate Details:
        {Details omitted from output for clarity}
    Certificate is to be certified until Mar 24 18:51:41 2024 GMT (365 days)
    Sign the certificate? [y/n]:
    
    
    1 out of 1 certificate requests certified, commit? [y/n]
    Write out database with 1 new entries
    Data Base Updated
    

    بعد أن يقوم OpenSSL بتحديث قاعدة بيانات الشهادة، تأكد من وجود ملف الشهادة لشهادة العميل في دليل CA التابع وأن ملف شهادة PEM (.pem) لشهادة العميل موجود في الدليل الفرعي لشهادات دليل CA التابع. يتطابق اسم ملف .pem مع الرقم التسلسلي لشهادة العميل.

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

يمكنك تسجيل جهازك مع مركز IoT لاختبار شهادة العميل التي قمت بإنشائها لهذا الجهاز. لمزيد من المعلومات حول تسجيل جهاز، راجع إنشاء هويات الجهاز وإدارتها.

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