Sertifikat X.509

Sertifikat X.509 adalah dokumen digital yang mewakili pengguna, komputer, layanan, atau perangkat. Otoritas sertifikat (CA), OS subordinat, atau otoritas pendaftaran mengeluarkan sertifikat X.509. Sertifikat berisi kunci umum subjek sertifikat. Mereka tidak berisi kunci privat subjek, yang harus disimpan dengan aman. RFC 5280 menfokuskan sertifikat kunci publik, termasuk bidang dan ekstensinya. Sertifikat kunci publik ditandatangani secara digital dan biasanya berisi informasi berikut:

  • Informasi tentang subjek sertifikat
  • Kunci publik yang sesuai dengan kunci privat subjek
  • Informasi tentang CA penerbit
  • Algoritma enkripsi dan/atau penandatanganan digital yang didukung
  • Informasi untuk menentukan status pencabutan dan validitas sertifikat

Bidang sertifikat

Ada tiga versi bertambah bertahap dari standar sertifikat X.509, dan setiap versi berikutnya menambahkan bidang sertifikat ke standar:

  • Versi 1 (v1), diterbitkan pada tahun 1988, mengikuti standar X.509 awal untuk sertifikat.
  • Versi 2 (v2), diterbitkan pada tahun 1993, menambahkan dua bidang ke bidang yang disertakan dalam Versi 1.
  • Versi 3 (v3), diterbitkan pada tahun 2008, mewakili versi standar X.509 saat ini. Versi ini menambahkan dukungan untuk ekstensi sertifikat.

Bagian ini dimaksudkan sebagai referensi umum untuk bidang sertifikat dan ekstensi sertifikat yang tersedia dalam sertifikat X.509. Untuk informasi selengkapnya tentang bidang sertifikat dan ekstensi sertifikat, termasuk jenis data, batasan, dan detail lainnya, lihat spesifikasi RFC 5280 .

Bidang versi 1

Tabel berikut ini menjelaskan bidang sertifikat Versi 1 untuk sertifikat X.509. Semua bidang yang disertakan dalam tabel ini tersedia dalam versi sertifikat X.509 berikutnya.

Nama Deskripsi
Versi Bilangan bulat yang mengidentifikasi nomor versi sertifikat.
Nomor Seri Bilangan bulat yang mewakili angka unik untuk setiap sertifikat yang dikeluarkan oleh otoritas sertifikat (CA).
Tanda tangan Pengidentifikasi untuk algoritma kriptografi yang digunakan oleh CA untuk menandatangani sertifikat. Nilai mencakup pengidentifikasi algoritma dan parameter opsional apa pun yang digunakan oleh algoritma tersebut, jika berlaku.
Pengeluar sertifikat Nama yang dibedakan (DN) dari CA penerbit sertifikat.
Validitas Periode waktu inklusif yang sertifikatnya valid.
Subjek Nama yang dibedakan (DN) dari subjek sertifikat.
Info Kunci Publik Subjek Kunci publik yang dimiliki oleh subjek sertifikat.

Bidang versi 2

Tabel berikut ini menjelaskan bidang yang ditambahkan untuk Versi 2, yang berisi informasi tentang penerbit sertifikat. Namun, bidang-bidang tersebut jarang digunakan. Semua bidang yang disertakan dalam tabel ini tersedia dalam versi sertifikat X.509 berikutnya.

Nama Deskripsi
ID Unik Penerbit Pengidentifikasi unik yang mewakili CA penerbit, seperti yang didefinisikan oleh CA penerbit.
ID Unik Subjek Pengidentifikasi unik yang mewakili subjek sertifikat, seperti yang didefinisikan oleh CA penerbit.

Bidang versi 3

Tabel berikut ini menjelaskan bidang yang ditambahkan untuk Versi 3, mewakili kumpulan ekstensi sertifikat X.509.

Nama Deskripsi
Ekstensi Kumpulan ekstensi sertifikat standar dan khusus Internet. Untuk informasi selengkapnya tentang ekstensi sertifikat yang tersedia untuk sertifikat X.509 v3, lihat Ekstensi sertifikat.

Ekstensi sertifikat

Ekstensi sertifikat, yang diperkenalkan dengan Versi 3, menyediakan metode untuk mengaitkan lebih banyak atribut dengan pengguna atau kunci publik dan untuk mengelola hubungan antara otoritas sertifikat. Untuk informasi selengkapnya tentang ekstensi sertifikat, lihat bagian Ekstensi Sertifikat dari spesifikasi RFC 5280 .

Ekstensi standar

Standar X.509 mendefinisikan ekstensi yang disertakan dalam bagian ini, untuk digunakan dalam infrastruktur kunci umum Internet (PKI).

Nama Deskripsi
Pengidentifikasi Kunci Otoritas Pengidentifikasi yang mewakili subjek sertifikat dan nomor seri sertifikat CA yang menerbitkan sertifikat ini, atau hash kunci publik dari CA penerbit.
Pengidentifikasi Kunci Subjek Hash kunci umum sertifikat saat ini.
Penggunaan Kunci Nilai bitmapped yang menentukan layanan yang sertifikatnya dapat digunakan.
Periode Penggunaan Kunci Privat Periode validitas untuk bagian kunci privat dari pasangan kunci.
Kebijakan Sertifikat Kumpulan informasi kebijakan, digunakan untuk memvalidasi subjek sertifikat.
Pemetaan Kebijakan Kumpulan pemetaan kebijakan, yang masing-masing memetakan kebijakan dalam satu organisasi ke kebijakan di organisasi lain.
Nama Alternatif Subjek Kumpulan nama alternatif untuk subjek.
Nama Alternatif Penerbit Kumpulan nama alternatif untuk CA penerbit.
Atribut Direktori Subjek Kumpulan atribut dari direktori X.500 atau LDAP.
Batasan Dasar Kumpulan batasan yang memungkinkan sertifikat untuk menunjuk apakah itu dikeluarkan untuk CA, atau kepada pengguna, komputer, perangkat, atau layanan. Ekstensi ini juga mencakup batasan panjang jalur yang membatasi jumlah CA bawahan yang dapat tersedia.
Batasan Nama Kumpulan batasan yang menunjuk namespace layanan mana yang diizinkan dalam sertifikat yang dikeluarkan CA.
Batasan Kebijakan Kumpulan batasan yang dapat digunakan untuk melarang pemetaan kebijakan antar CA.
Penggunaan Kunci yang Diperluas Kumpulan nilai tujuan utama yang menunjukkan bagaimana kunci umum sertifikat dapat digunakan, di luar tujuan yang diidentifikasi dalam ekstensi Penggunaan Kunci .
Titik Distribusi CRL Kumpulan URL tempat daftar pencabutan sertifikat dasar (CRL) diterbitkan.
Menghambat anyPolicy Menghambat penggunaan Semua Kebijakan Penerbitan OID (2.5.29.32.0) dalam sertifikat OS subordinat
CRL terbaru Ekstensi ini, juga dikenal sebagai Titik Distribusi CRL Delta, berisi satu atau beberapa URL tempat CRL delta CA penerbit diterbitkan.

Ekstensi Internet Privat

Ekstensi yang disertakan dalam bagian ini mirip dengan ekstensi standar, dan dapat digunakan untuk mengarahkan aplikasi ke informasi online tentang CA atau subjek sertifikat yang menerbitkan.

Nama Deskripsi
Akses Informasi Otoritas Kumpulan entri yang menjelaskan format dan lokasi informasi tambahan yang disediakan oleh CA penerbit.
Akses Informasi Subjek Kumpulan entri yang menjelaskan format dan lokasi informasi tambahan yang disediakan oleh subjek sertifikat.

Format sertifikat

Sertifikat dapat disimpan dalam berbagai format. autentikasi Azure IoT Hub biasanya menggunakan format Privacy-Enhanced Mail (PEM) dan Personal Information Exchange (PFX). Tabel berikut ini menjelaskan file dan format yang umum digunakan untuk mewakili sertifikat.

Format Deskripsi
Sertifikat biner Sertifikat biner bentuk mentah menggunakan pengodean ASN.1 Distinguished Encoding Rules (DER).
Format PEM ASCII File sertifikat PEM (.pem) berisi sertifikat yang dikodekan Base64 yang dimulai dengan -----BEGIN CERTIFICATE----- dan diakhbungkan dengan -----END CERTIFICATE-----. Salah satu format paling umum untuk sertifikat X.509, format PEM diperlukan oleh IoT Hub saat mengunggah sertifikat tertentu, seperti sertifikat perangkat.
Kunci PEM ASCII Berisi kunci DER yang dikodekan Base64, secara opsional dengan lebih banyak metadata tentang algoritma yang digunakan untuk perlindungan kata sandi.
Sertifikat PKCS #7 Format yang dirancang untuk pengangkutan data yang ditandatangani atau dienkripsi. Ini dapat mencakup seluruh rantai sertifikat. RFC 2315 mendefinisikan format ini.
Kunci #8 PKCS Format untuk penyimpanan kunci privat. RFC 5208 mendefinisikan format ini.
Kunci dan sertifikat PKCS #12 Format kompleks yang dapat menyimpan dan melindungi kunci serta seluruh rantai sertifikat. Ini biasanya digunakan dengan ekstensi .p12 atau .pfx. PKCS #12 identik dengan format PFX. RFC 7292 mendefinisikan format ini.

Sertifikat yang ditandatangani sendiri

Anda dapat mengautentikasi perangkat ke hub IoT Anda untuk tujuan pengujian dengan menggunakan dua sertifikat yang ditandatangani sendiri. Jenis autentikasi ini terkadang disebut autentikasi thumbprint karena sertifikat diidentifikasi dengan nilai hash terhitung yang disebut sidik jari atau thumbprint. Nilai hash terhitung ini digunakan oleh IoT Hub untuk mengautentikasi perangkat Anda.

Penting

Kami menyarankan agar Anda menggunakan sertifikat yang ditandatangani oleh Otoritas Sertifikat (CA) penerbit, bahkan untuk tujuan pengujian. Jangan pernah menggunakan sertifikat yang ditandatangani sendiri dalam produksi.

Membuat sertifikat yang ditandatangani sendiri

Anda dapat menggunakan OpenSSL untuk membuat sertifikat yang ditandatangani sendiri. Langkah-langkah berikut menunjukkan kepada Anda cara menjalankan perintah OpenSSL dalam shell bash untuk membuat sertifikat yang ditandatangani sendiri dan mengambil sidik jari sertifikat yang dapat digunakan untuk mengautentikasi perangkat Anda di IoT Hub.

Catatan

Jika Anda ingin menggunakan sertifikat yang ditandatangani sendiri untuk pengujian, Anda harus membuat dua sertifikat untuk setiap perangkat.

  1. Jalankan perintah berikut untuk menghasilkan kunci privat dan buat file kunci privat (.key) yang dikodekan PEM, mengganti tempat penampung berikut dengan nilai yang sesuai. Kunci privat yang dihasilkan oleh perintah berikut menggunakan algoritma RSA dengan enkripsi 2048-bit.

    {KeyFile}. Nama file kunci privat Anda.

    openssl genpkey -out {KeyFile} -algorithm RSA -pkeyopt rsa_keygen_bits:2048
    
  2. Jalankan perintah berikut untuk menghasilkan permintaan penandatanganan sertifikat (CSR) PKCS #10 dan buat file CSR (.csr), ganti tempat penampung berikut dengan nilai yang sesuai. Pastikan Anda menentukan ID perangkat perangkat IoT untuk sertifikat yang ditandatangani sendiri saat diminta.

    {KeyFile}. Nama file kunci privat Anda.

    {CsrFile}. Nama file CSR Anda.

    {DeviceID}. Nama perangkat IoT Anda.

    openssl req -new -key {KeyFile} -out {CsrFile}
    
    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) []:{DeviceID}
    Email Address []:.
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:.
    An optional company name []:.
    
  3. Jalankan perintah berikut untuk memeriksa dan memverifikasi CSR Anda, mengganti tempat penampung berikut dengan nilai yang sesuai.

    {CsrFile}. Nama file sertifikat Anda.

    openssl req -text -in {CsrFile} -verify -noout
    
  4. Jalankan perintah berikut untuk membuat sertifikat yang ditandatangani sendiri dan membuat file sertifikat yang dikodekan PEM (.crt), mengganti tempat penampung berikut dengan nilai yang sesuai. Perintah mengonversi dan menandatangani CSR Anda dengan kunci privat Anda, menghasilkan sertifikat yang ditandatangani sendiri yang kedaluwarsa dalam 365 hari.

    {KeyFile}. Nama file kunci privat Anda.

    {CsrFile}. Nama file CSR Anda.

    {CrtFile}. Nama file sertifikat Anda.

    openssl x509 -req -days 365 -in {CsrFile} -signkey {KeyFile} -out {CrtFile}
    
  5. Jalankan perintah berikut untuk mengambil sidik jari sertifikat, mengganti tempat penampung berikut dengan nilai yang sesuai. Sidik jari sertifikat adalah nilai hash terhitung yang unik untuk sertifikat tersebut. Anda memerlukan sidik jari untuk mengonfigurasi perangkat IoT Anda di IoT Hub untuk pengujian.

    {CrtFile}. Nama file sertifikat Anda.

    openssl x509 -in {CrtFile} -noout -fingerprint
    

Memverifikasi sertifikat secara manual setelah diunggah

Saat Anda mengunggah sertifikat otoritas sertifikat akar (CA) atau sertifikat OS subordinat ke hub IoT, Anda dapat memilih untuk memverifikasi sertifikat secara otomatis. Jika Anda tidak memilih untuk memverifikasi sertifikat Anda secara otomatis selama pengunggah, sertifikat Anda ditampilkan dengan statusnya diatur ke Belum Diverifikasi. Anda harus melakukan langkah-langkah berikut untuk memverifikasi sertifikat Anda secara manual.

  1. Pilih sertifikat untuk melihat dialog Detail Sertifikat.

  2. Pilih Buat Kode Verifikasi dalam dialog.

    Cuplikan layar memperlihatkan dialog detail sertifikat.

  3. Salin kode verifikasi ke clipboard. Anda harus menggunakan kode verifikasi ini sebagai subjek sertifikat dalam langkah-langkah berikutnya. Misalnya, jika kode verifikasi adalah 75B86466DA34D2B04C0C4C9557A119687ADAE7D4732BDDB3, tambahkan itu sebagai subjek sertifikat Anda seperti yang ditunjukkan pada langkah berikutnya.

  4. Ada tiga cara untuk membuat sertifikat verifikasi:

    • Jika Anda menggunakan skrip PowerShell yang disediakan oleh Microsoft, jalankan New-CACertsVerificationCert "<verification code>" untuk membuat sertifikat bernama VerifyCert4.cer, mengganti <verification code> dengan kode verifikasi yang dibuat sebelumnya. Untuk informasi selengkapnya, lihat Mengelola sertifikat CA pengujian untuk sampel dan tutorial di repositori GitHub untuk SDK Perangkat Azure IoT Hub untuk C.

    • Jika Anda menggunakan skrip Bash yang disediakan oleh Microsoft, jalankan ./certGen.sh create_verification_certificate "<verification code>" untuk membuat sertifikat bernama verification-code.cert.pem, mengganti <verification code> dengan kode verifikasi yang dihasilkan sebelumnya. Untuk informasi selengkapnya, lihat Mengelola sertifikat CA pengujian untuk sampel dan tutorial di repositori GitHub untuk SDK Perangkat Azure IoT Hub untuk C.

    • Jika Anda menggunakan OpenSSL untuk membuat sertifikat, Anda harus terlebih dahulu membuat kunci privat, lalu membuat file permintaan penandatanganan sertifikat (CSR). Dalam contoh berikut, ganti <verification code> dengan kode verifikasi yang dihasilkan sebelumnya:

    openssl genpkey -out pop.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048
    
    openssl req -new -key pop.key -out pop.csr
    
    -----
    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) []:<verification code>
    Email Address []:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    

    Kemudian, buat sertifikat menggunakan file konfigurasi yang sesuai untuk OS akar atau CA subordinat, dan file CSR. Contoh berikut menunjukkan cara menggunakan OpenSSL untuk membuat sertifikat dari file konfigurasi OS akar dan file CSR.

    openssl ca -config rootca.conf -in pop.csr -out pop.crt -extensions client_ext
    

    Untuk informasi selengkapnya, lihat Tutorial - Membuat dan mengunggah sertifikat untuk pengujian.

  5. Pilih sertifikat baru dalam tampilan Detail Sertifikat.

  6. Setelah sertifikat diunggah, pilih Verifikasi. Status sertifikat harus berubah menjadi Diverifikasi.

Untuk informasi selengkapnya

Untuk informasi selengkapnya tentang sertifikat X.509 dan bagaimana sertifikat tersebut digunakan dalam IoT Hub, lihat artikel berikut ini: