Tutorial: Membuat dan mengunggah sertifikat untuk pengujian

Anda dapat menggunakan sertifikat X.509 untuk mengautentikasi perangkat ke hub IoT Anda. Untuk lingkungan produksi, kami sarankan Anda membeli sertifikat CA X.509 dari vendor layanan sertifikat profesional. Anda kemudian dapat menerbitkan sertifikat dalam organisasi Anda dari otoritas sertifikat (CA) internal yang dikelola sendiri yang ditautkan ke sertifikat CA yang dibeli sebagai bagian dari strategi infrastruktur kunci publik (PKI) yang komprehensif. Untuk informasi selengkapnya tentang mendapatkan sertifikat CA X.509 dari vendor layanan sertifikat profesional, lihat bagian Mendapatkan sertifikat CA X.509 dari Mengautentikasi perangkat menggunakan sertifikat CA X.509.

Namun, membuat CA privat yang dikelola sendiri yang menggunakan CA akar internal karena jangkar kepercayaan memadai untuk lingkungan pengujian. CA privat yang dikelola sendiri dengan setidaknya satu CA subordinat yang dirantai ke CA akar internal Anda, dengan sertifikat klien untuk perangkat Anda yang ditandatangani oleh CA subordinat Anda, memungkinkan Anda mensimulasikan lingkungan produksi yang direkomendasikan.

Penting

Kami tidak merekomendasikan penggunaan sertifikat yang ditandatangani sendiri untuk lingkungan produksi. Tutorial ini disajikan hanya untuk tujuan demonstrasi.

Tutorial berikut menggunakan OpenSSL dan OpenSSL Cookbook untuk menjelaskan cara menyelesaikan tugas-tugas berikut:

  • Membuat otoritas sertifikat akar internal (CA) dan sertifikat OS akar
  • Buat CA subordinat internal dan sertifikat OS subordinat, yang ditandatangani oleh sertifikat OS akar internal Anda
  • Unggah sertifikat OS subordinat Anda ke hub IoT Anda untuk tujuan pengujian
  • Gunakan CA subordinat untuk membuat sertifikat klien untuk perangkat IoT yang ingin Anda uji dengan hub IoT Anda

Catatan

Microsoft menyediakan skrip PowerShell dan Bash untuk membantu Anda memahami cara membuat sertifikat X.509 Anda sendiri dan mengautentikasinya ke hub IoT. Skrip disertakan dengan Azure IoT Hub Device SDK untuk C. Skrip disediakan hanya untuk tujuan demonstrasi. Sertifikat yang dibuat oleh skrip tidak boleh digunakan untuk produksi. Sertifikat berisi kata sandi yang dikodekan secara permanen ("1234") dan kedaluwarsa setelah 30 hari. Anda harus menggunakan praktik terbaik Anda sendiri untuk pembuatan sertifikat dan manajemen seumur hidup di lingkungan produksi. Untuk informasi selengkapnya, lihat Mengelola sertifikat CA pengujian untuk sampel dan tutorial di repositori GitHub untuk Azure IoT Hub Device SDK untuk C.

Prasyarat

  • Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

  • IoT Hub di langganan Azure Anda. Jika belum memiliki hub, Anda dapat mengikuti langkah-langkah di Membuat IoT hub.

  • Versi terbaru Git. Pastikan Git ditambahkan ke variabel lingkungan yang dapat diakses oleh jendela perintah. Lihat alat klien Git Software Freedom Conservancy untuk versi terbaru alat git yang akan diinstal, yang mencakup Git Bash, aplikasi baris perintah yang dapat Anda gunakan untuk berinteraksi dengan repositori Git lokal.

  • Penginstalan OpenSSL . Di Windows, penginstalan Git Anda menyertakan penginstalan OpenSSL. Anda dapat mengakses OpenSSL dari prompt Git Bash. Untuk memverifikasi bahwa OpenSSL diinstal, buka perintah Git Bash dan masukkan openssl version.

    Catatan

    Kecuali Anda terbiasa dengan OpenSSL dan sudah menginstalnya di komputer Windows Anda, sebaiknya gunakan OpenSSL dari prompt Git Bash. Atau, Anda dapat memilih untuk mengunduh kode sumber dan membangun OpenSSL. Untuk mempelajari selengkapnya, lihat halaman Unduhan OpenSSL. Atau, Anda dapat mengunduh OpenSSL bawaan dari pihak ketiga. Untuk mempelajari lebih lanjut , lihat wiki OpenSSL. Microsoft tidak menjamin tentang validitas paket yang diunduh dari pihak ketiga. Jika Anda memilih untuk membuat atau mengunduh OpenSSL, pastikan biner OpenSSL dapat diakses di jalur Anda dan variabel OPENSSL_CNF lingkungan diatur ke jalur file openssl.cnf Anda.

Membuat CA akar

Anda harus terlebih dahulu membuat otoritas sertifikat akar internal (CA) dan sertifikat OS akar yang ditandatangani sendiri untuk berfungsi sebagai jangkar kepercayaan tempat Anda dapat membuat sertifikat lain untuk pengujian. File yang digunakan untuk membuat dan memelihara CA akar internal Anda disimpan dalam struktur folder dan diinisialisasi sebagai bagian dari proses ini. Lakukan langkah-langkah berikut untuk:

  • Membuat dan menginisialisasi folder dan file yang digunakan oleh CA akar Anda
  • Membuat file konfigurasi yang digunakan oleh OpenSSL untuk mengonfigurasi OS akar dan sertifikat Yang dibuat dengan CA akar Anda
  • Meminta dan membuat sertifikat CA yang ditandatangani sendiri yang berfungsi sebagai sertifikat OS akar Anda
  1. Mulai jendela Git Bash dan jalankan perintah berikut, ganti {base_dir} dengan direktori yang diinginkan untuk membuat sertifikat dalam tutorial ini.

    cd {base_dir}
    
  2. Di jendela Git Bash, jalankan perintah berikut, satu per satu. Langkah ini membuat struktur direktori berikut dan mendukung file untuk CA akar.

    Direktori atau file Deskripsi
    rootca Direktori akar CA akar.
    rootca/certs Direktori tempat sertifikat CA untuk CA akar dibuat dan disimpan.
    rootca/db Direktori tempat database sertifikat dan file dukungan untuk CA akar disimpan.
    rootca/db/index Database sertifikat untuk OS akar. Perintah touch membuat file tanpa konten apa pun, untuk digunakan nanti. Database sertifikat adalah file teks biasa yang dikelola oleh OpenSSL yang berisi informasi tentang sertifikat yang dikeluarkan. Untuk informasi selengkapnya tentang database sertifikat, lihat halaman manual openssl-ca .
    rootca/db/serial File yang digunakan untuk menyimpan nomor seri sertifikat berikutnya yang akan dibuat untuk CA akar. Perintah openssl membuat angka acak 16-byte dalam format heksadesimal, lalu menyimpannya dalam file ini untuk menginisialisasi file untuk membuat sertifikat CA akar.
    rootca/db/crlnumber File yang digunakan untuk menyimpan nomor seri untuk sertifikat yang dicabut yang dikeluarkan oleh CA akar. echo Perintah menyalurkan sampel nomor seri, 1001, ke dalam file.
    rootca/privat Direktori tempat file privat untuk CA akar, termasuk kunci privat, disimpan.
    File dalam direktori ini harus diamankan dan dilindungi.
    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. Buat file teks bernama rootca.conf di rootca direktori yang dibuat di langkah sebelumnya. Buka file tersebut di editor teks, lalu salin dan simpan pengaturan konfigurasi OpenSSL berikut ke dalam file tersebut.

    File ini menyediakan OpenSSL dengan nilai yang diperlukan untuk mengonfigurasi CA akar pengujian Anda. Untuk contoh ini, file mengonfigurasi CA akar yang disebut rootca menggunakan direktori dan file yang dibuat di langkah-langkah sebelumnya. File ini juga menyediakan pengaturan konfigurasi untuk:

    • Kebijakan CA yang digunakan oleh CA akar untuk bidang Nama Khusus (DN) sertifikat
    • Permintaan sertifikat yang dibuat oleh CA akar
    • Ekstensi X.509 diterapkan ke sertifikat OS akar, sertifikat CA subordinat, dan sertifikat klien yang dikeluarkan oleh CA akar

    Catatan

    Atribut home , di bagian ca_default , diatur ke ../rootca karena file konfigurasi ini juga digunakan saat membuat sertifikat untuk CA subordinat Anda. Jalur relatif yang ditentukan memungkinkan OpenSSL untuk menavigasi dari folder CA subordinat Anda ke folder CA akar Anda selama proses tersebut.

    Untuk informasi selengkapnya tentang sintaks file konfigurasi OpenSSL, lihat halaman manual konfigurasi dalam dokumentasi 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. Di jendela Git Bash, jalankan perintah berikut untuk menghasilkan permintaan penandatanganan sertifikat (CSR) di rootca direktori dan kunci privat di rootca/private direktori. Untuk informasi selengkapnya tentang perintah OpenSSL req , lihat halaman manual openssl-req dalam dokumentasi OpenSSL.

    Catatan

    Meskipun CA akar ini untuk tujuan pengujian dan tidak akan diekspos sebagai bagian dari infrastruktur kunci publik (PKI), kami sarankan Anda tidak menyalin atau berbagi kunci privat.

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

    Anda diminta untuk memasukkan frasa sandi PEM, seperti yang ditunjukkan dalam contoh berikut, untuk file kunci privat. Masukkan dan konfirmasikan frasa pass untuk menghasilkan kunci privat dan CSR Anda.

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

    Konfirmasikan bahwa file CSR, rootca.csr, ada di rootca direktori dan file kunci privat, rootca.key, ada di private subdirektori sebelum melanjutkan.

  5. Di jendela Git Bash, jalankan perintah berikut untuk membuat sertifikat CA akar yang ditandatangani sendiri. Perintah menerapkan ca_ext ekstensi file konfigurasi ke sertifikat. Ekstensi ini menunjukkan bahwa sertifikat adalah untuk CA akar dan dapat digunakan untuk menandatangani sertifikat dan daftar pencabutan sertifikat (CRL). Untuk informasi selengkapnya tentang perintah OpenSSL ca , lihat halaman manual openssl-ca di dokumentasi OpenSSL.

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

    Anda diminta untuk memberikan frasa pass PEM, seperti yang ditunjukkan dalam contoh berikut, untuk file kunci privat. Setelah memberikan frasa pass, OpenSSL menghasilkan sertifikat, lalu meminta Anda untuk menandatangani dan menerapkan sertifikat untuk OS akar Anda. Tentukan y untuk kedua perintah untuk menghasilkan sertifikat yang ditandatangani sendiri untuk CA akar Anda.

    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
    

    Setelah OpenSSL memperbarui database sertifikat, konfirmasikan bahwa file sertifikat, rootca.crt, ada di rootca direktori dan file sertifikat PEM (.pem) untuk sertifikat ada di rootca/certs direktori. Nama file file .pem cocok dengan nomor seri sertifikat OS akar.

Membuat CA subordinat

Setelah membuat CA akar internal, Anda harus membuat CA subordinat untuk digunakan sebagai CA perantara untuk menandatangani sertifikat klien untuk perangkat Anda. Secara teori, Anda tidak perlu membuat CA bawahan; Anda dapat mengunggah sertifikat OS akar Anda ke hub IoT Anda dan menandatangani sertifikat klien langsung dari CA akar Anda. Namun, menggunakan CA subordinat sebagai CA perantara untuk menandatangani sertifikat klien dengan lebih cermat mensimulasikan lingkungan produksi yang direkomendasikan, di mana CA akar Anda disimpan offline. Anda juga dapat menggunakan CA subordinat untuk menandatangani CA subordinat lain, yang pada gilirannya dapat menandatangani CA bawahan lain, dan sebagainya. Menggunakan CA subordinat untuk menandatangani CA subordinat lainnya membuat hierarki CA menengah sebagai bagian dari rantai kepercayaan sertifikat. Di lingkungan produksi, rantai sertifikat kepercayaan memungkinkan delegasi kepercayaan terhadap perangkat penandatanganan. Untuk informasi selengkapnya tentang memasukkan perangkat ke dalam rantai sertifikat kepercayaan, lihat Mengautentikasi perangkat menggunakan sertifikat CA X.509.

Mirip dengan CA akar Anda, file yang digunakan untuk membuat dan memelihara CA subordinat Anda disimpan dalam struktur folder dan diinisialisasi sebagai bagian dari proses ini. Lakukan langkah-langkah berikut untuk:

  • Membuat dan menginisialisasi folder dan file yang digunakan oleh CA subordinat Anda
  • Membuat file konfigurasi yang digunakan oleh OpenSSL untuk mengonfigurasi CA subordinat dan sertifikat yang dibuat dengan CA subordinat Anda
  • Meminta dan membuat sertifikat CA yang ditandatangani oleh CA akar Anda yang berfungsi sebagai sertifikat OS bawahan Anda
  1. Kembali ke direktori dasar yang berisi rootca direktori. Untuk contoh ini, CA akar dan CA subordinat berada di direktori dasar yang sama.

    cd ..
    
  2. Di jendela Git Bash, jalankan perintah berikut, satu per satu.

    Langkah ini membuat struktur direktori dan mendukung file untuk CA subordinat yang mirip dengan struktur folder dan file yang dibuat untuk CA akar di bagian sebelumnya.

    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. Buat file teks bernama subca.conf di subca direktori yang dibuat di langkah sebelumnya. Buka file tersebut di editor teks, lalu salin dan simpan pengaturan konfigurasi OpenSSL berikut ke dalam file tersebut.

    Seperti halnya file konfigurasi untuk CA akar pengujian Anda, file ini menyediakan OpenSSL dengan nilai yang diperlukan untuk mengonfigurasi CA subordinat pengujian Anda. Anda dapat membuat beberapa CA subordinat, untuk mengelola skenario atau lingkungan pengujian.

    Untuk informasi selengkapnya tentang sintaks file konfigurasi OpenSSL, lihat halaman manual master konfigurasi dalam dokumentasi 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. Di jendela Git Bash, jalankan perintah berikut untuk menghasilkan kunci privat dan permintaan penandatanganan sertifikat (CSR) di direktori CA bawahan.

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

    Anda diminta untuk memasukkan frasa sandi PEM, seperti yang ditunjukkan dalam contoh berikut, untuk file kunci privat. Masukkan dan verifikasi frasa pass untuk menghasilkan kunci privat dan CSR Anda.

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

    Konfirmasikan bahwa file subca.csr CSR ada di direktori CA subordinat dan file subca.key kunci privat ada di private subdirektori sebelum melanjutkan.

  5. Di jendela Git Bash, jalankan perintah berikut untuk membuat sertifikat OS subordinat di direktori CA subordinat. Perintah menerapkan sub_ca_ext ekstensi file konfigurasi ke sertifikat. Ekstensi ini menunjukkan bahwa sertifikat adalah untuk CA subordinat dan juga dapat digunakan untuk menandatangani sertifikat dan daftar pencabutan sertifikat (CRL). Tidak seperti sertifikat OS akar, sertifikat ini tidak ditandatangani sendiri. Sebagai gantinya, sertifikat OS subordinat ditandatangani dengan sertifikat OS akar, membangun rantai sertifikat yang mirip dengan apa yang akan Anda gunakan untuk infrastruktur kunci publik (PKI). Sertifikat OS subordinat kemudian digunakan untuk menandatangani sertifikat klien untuk menguji perangkat Anda.

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

    Anda diminta untuk memasukkan frasa pass, seperti yang ditunjukkan dalam contoh berikut, untuk file kunci privat CA akar Anda. Setelah Anda memasukkan frasa pass, OpenSSL menghasilkan dan menampilkan detail sertifikat, lalu meminta Anda untuk menandatangani dan menerapkan sertifikat untuk CA bawahan Anda. Tentukan y untuk kedua perintah untuk menghasilkan sertifikat untuk CA subordinat Anda.

    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
    

    Setelah OpenSSL memperbarui database sertifikat, konfirmasikan bahwa file subca.crt sertifikat ada di direktori CA subordinat dan bahwa file sertifikat PEM (.pem) untuk sertifikat ada di rootca/certs direktori. Nama file file .pem cocok dengan nomor seri sertifikat OS subordinat.

Mendaftarkan sertifikat OS subordinat Anda ke hub IoT Anda

Daftarkan sertifikat CA subordinat ke hub IoT Anda, yang menggunakannya untuk mengautentikasi perangkat Anda selama pendaftaran dan koneksi. Langkah-langkah berikut menjelaskan cara mengunggah dan memverifikasi sertifikat CA subordinat Anda secara otomatis ke hub IoT Anda.

  1. Di portal Azure, navigasikan ke hub IoT Anda dan pilih Sertifikat dari menu sumber daya, di bawah Pengaturan keamanan.

  2. Pilih Tambahkan dari bilah perintah untuk menambahkan sertifikat CA baru.

  3. Masukkan nama tampilan untuk sertifikat OS subordinat Anda di bidang Nama sertifikat.

  4. Pilih file sertifikat PEM (.pem) sertifikat OS subordinat Anda dari rootca/certs direktori untuk ditambahkan di bidang File Sertifikat .pem atau .cer.

  5. Centang kotak di samping Atur status sertifikat menjadi terverifikasi saat pengunggahan.

    Cuplikan layar memperlihatkan cara memverifikasi status sertifikat secara otomatis saat diunggah.

  6. Pilih Simpan.

Sertifikat OS subordinat yang Anda unggah ditampilkan dengan statusnya diatur ke Diverifikasi pada tab Sertifikat panel kerja.

Membuat sertifikat klien untuk perangkat

Setelah membuat CA subordinat, Anda dapat membuat sertifikat klien untuk perangkat Anda. File dan folder yang dibuat untuk CA subordinat Anda digunakan untuk menyimpan file CSR, kunci privat, dan sertifikat untuk sertifikat klien Anda.

Sertifikat klien harus memiliki nilai bidang Nama Umum Subjek (CN) yang diatur ke nilai ID perangkat yang digunakan saat mendaftarkan perangkat yang sesuai di Azure IoT Hub.

Lakukan langkah-langkah berikut untuk:

  • Membuat kunci privat dan permintaan penandatanganan sertifikat (CSR) untuk sertifikat klien
  • Membuat sertifikat klien yang ditandatangani oleh sertifikat OS subordinat Anda
  1. Di jendela Git Bash Anda, pastikan Anda masih berada di subca direktori.

  2. Di jendela Git Bash, jalankan perintah berikut satu per satu. Ganti tempat penampung dengan nama untuk perangkat IoT Anda, misalnya testdevice. Langkah ini membuat kunci privat dan CSR untuk sertifikat klien Anda.

    Langkah ini membuat kunci privat RSA 2048-bit untuk sertifikat klien Anda, lalu menghasilkan permintaan penandatanganan sertifikat (CSR) menggunakan kunci privat tersebut.

    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. Saat diminta, berikan detail sertifikat seperti yang ditunjukkan dalam contoh berikut.

    Satu-satunya permintaan yang harus Anda berikan nilai tertentu adalah Nama Umum, yang harus merupakan nama perangkat yang sama yang disediakan pada langkah sebelumnya. Anda dapat melewati atau memberikan nilai arbitrer untuk perintah lainnya.

    Setelah memberikan detail sertifikat, OpenSSL menghasilkan dan menampilkan detail sertifikat, lalu meminta Anda untuk menandatangani dan menerapkan sertifikat untuk CA bawahan Anda. Tentukan y untuk kedua perintah guna menghasilkan sertifikat untuk CA subordinat Anda.

    -----
    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 []:
    
    

    Konfirmasikan bahwa file CSR ada di direktori CA subordinat dan file kunci privat ada di private subdirektori sebelum melanjutkan. Untuk informasi selengkapnya tentang format CSR dan file kunci privat, lihat sertifikat X.509.

  4. Di jendela Git Bash, jalankan perintah berikut, ganti tempat penampung nama perangkat dengan nama yang sama dengan yang Anda gunakan di langkah sebelumnya.

    Langkah ini membuat sertifikat klien di direktori CA subordinat. Perintah menerapkan client_ext ekstensi file konfigurasi ke sertifikat. Ekstensi ini menunjukkan bahwa sertifikat adalah untuk sertifikat klien, yang tidak dapat digunakan sebagai sertifikat CA. Sertifikat klien ditandatangani dengan sertifikat OS bawahan.

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

    Anda diminta untuk memasukkan frasa pass, seperti yang ditunjukkan dalam contoh berikut, untuk file kunci privat CA subordinat Anda. Setelah Anda memasukkan frasa pass, OpenSSL menghasilkan dan menampilkan detail sertifikat, lalu meminta Anda untuk menandatangani dan menerapkan sertifikat klien untuk perangkat Anda. Tentukan y untuk kedua perintah untuk menghasilkan sertifikat klien.

    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
    

    Setelah OpenSSL memperbarui database sertifikat, konfirmasikan bahwa file sertifikat untuk sertifikat klien ada di direktori CA subordinat dan bahwa file sertifikat PEM (.pem) untuk sertifikat klien ada di subdirektori sertifikat direktori CA subordinat. Nama file file .pem cocok dengan nomor seri sertifikat klien.

Langkah berikutnya

Anda dapat mendaftarkan perangkat dengan hub IoT untuk menguji sertifikat klien yang telah Anda buat untuk perangkat tersebut. Untuk informasi selengkapnya tentang mendaftarkan perangkat, lihat bagian Mendaftarkan perangkat baru di hub IoT di Membuat hub IoT menggunakan portal Azure.

Jika Anda memiliki beberapa perangkat terkait untuk diuji, Anda dapat menggunakan Azure IoT Hub Device Provisioning Service untuk menyediakan beberapa perangkat dalam grup pendaftaran. Untuk informasi selengkapnya tentang menggunakan grup pendaftaran di Device Provisioning Service, lihat Tutorial: Menyediakan beberapa perangkat X.509 menggunakan grup pendaftaran.

Untuk informasi selengkapnya tentang format file sertifikat, lihat Sertifikat X.509.