Öğretici: Test için sertifika oluşturma ve karşıya yükleme

IoT hub'ınız için cihazların kimliğini doğrulamak için X.509 sertifikalarını kullanabilirsiniz. Üretim ortamları için, profesyonel bir sertifika hizmetleri satıcısından X.509 CA sertifikası satın almanızı öneririz. Daha sonra, kapsamlı bir ortak anahtar altyapısı (PKI) stratejisi kapsamında satın alınan CA sertifikasına zincirlenmiş bir iç, kendi kendine yönetilen sertifika yetkilisinden (CA) kuruluşunuz içinde sertifikalar düzenleyebilirsiniz. Profesyonel bir sertifika hizmetleri satıcısından X.509 CA sertifikası alma hakkında daha fazla bilgi için X.509 CA sertifikalarını kullanarak cihazların kimliğini doğrulama bölümünün X.509 CA sertifikası alma bölümüne bakın.

Ancak, güven bağlantı noktası olarak iç kök CA kullanan kendi kendi yönetilen özel CA'nızı oluşturmak, test ortamları için yeterlidir. Alt CA'larınız tarafından imzalanan cihazlarınız için istemci sertifikaları ile iç kök CA'nıza zincirlenmiş en az bir alt CA'ya sahip, kendi kendine yönetilen özel CA, önerilen bir üretim ortamının benzetimini yapmanızı sağlar.

Önemli

Üretim ortamları için otomatik olarak imzalanan sertifikaların kullanılmasını önermeyiz. Bu öğretici yalnızca tanıtım amacıyla sunulmuştur.

Aşağıdaki öğreticide, aşağıdaki görevlerin nasıl yerine getirilip gerçekleştirilecağı açıklanırken OpenSSL ve OpenSSL Cookbook kullanılır:

  • İç kök sertifika yetkilisi (CA) ve kök CA sertifikası oluşturma
  • İç kök CA sertifikanız tarafından imzalanan bir iç alt CA ve alt CA sertifikası oluşturma
  • Test amacıyla alt CA sertifikanızı IoT hub'ınıza yükleyin
  • IoT hub'ınızla test etmek istediğiniz IoT cihazları için istemci sertifikaları oluşturmak için alt CA'sını kullanın

Not

Microsoft, kendi X.509 sertifikalarınızı nasıl oluşturabileceğinizi ve bir IoT hub'ında kimliklerini nasıl doğrulayacağınızı anlamanıza yardımcı olmak için PowerShell ve Bash betikleri sağlar. Betikler C için Azure IoT Hub Cihaz SDK'sı ile birlikte sunulur. Betikler yalnızca tanıtım amacıyla sağlanır. Bunlar tarafından oluşturulan sertifikalar üretim için kullanılmamalıdır. Sertifikalar sabit kodlanmış parolalar ("1234") içerir ve süresi 30 gün sonra dolar. Bir üretim ortamında sertifika oluşturma ve yaşam süresi yönetimi için kendi en iyi yöntemlerinizi kullanmanız gerekir. Daha fazla bilgi için bkz. C için Azure IoT Hub Cihaz SDK'sı için GitHub deposundaki örnekler ve öğreticiler için test CA sertifikalarını yönetme.

Önkoşullar

  • Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

  • Azure aboneliğinizde bir IoT hub'ı. Henüz bir hub'ına sahip değilseniz IoT hub'ı oluşturma makalesindeki adımları izleyebilirsiniz.

  • Git'in en son sürümü. Git'in komut penceresi tarafından erişilebilen ortam değişkenlerine eklendiğinden emin olun. Yüklenecek araçların en son sürümü git için, yerel Git deponuzla etkileşim kurmak için kullanabileceğiniz komut satırı uygulaması Git Bash'i içeren Yazılım Özgürlüğü Koruması'nın Git istemci araçlarına bakın.

  • OpenSSL yüklemesi. Windows'da, Git yüklemeniz openSSL yüklemesini içerir. OpenSSL'ye Git Bash isteminden erişebilirsiniz. OpenSSL'nin yüklü olduğunu doğrulamak için bir Git Bash istemi açın ve girin openssl version.

    Not

    OpenSSL hakkında bilgi sahibi değilseniz ve Windows makinenizde zaten yüklü değilse Git Bash isteminden OpenSSL kullanmanızı öneririz. Alternatif olarak, kaynak kodu indirmeyi ve OpenSSL oluşturmayı seçebilirsiniz. Daha fazla bilgi edinmek için OpenSSL İndirmeleri sayfasına bakın. Alternatif olarak, üçüncü taraflardan önceden oluşturulmuş OpenSSL'i de indirebilirsiniz. Daha fazla bilgi edinmek için OpenSSL wiki'sine bakın. Microsoft, üçüncü taraflardan indirilen paketlerin geçerliliği konusunda hiçbir garantide bulunmaz. OpenSSL oluşturmayı veya indirmeyi seçerseniz, OpenSSL ikili dosyasının yolunuzda erişilebilir olduğundan ve ortam değişkeninin OPENSSL_CNF openssl.cnf dosyanızın yoluna ayarlandığından emin olun.

Kök CA oluşturma

Test için başka sertifikalar oluşturabileceğiniz bir güven bağlayıcısı olarak görev yapmak için önce bir iç kök sertifika yetkilisi (CA) ve otomatik olarak imzalanan bir kök CA sertifikası oluşturmanız gerekir. İç kök CA'nızı oluşturmak ve korumak için kullanılan dosyalar bir klasör yapısında depolanır ve bu işlemin bir parçası olarak başlatılır. Aşağıdaki adımları gerçekleştirin:

  • Kök CA'nız tarafından kullanılan klasörleri ve dosyaları oluşturma ve başlatma
  • Kök CA'nızı ve kök CA'nızla oluşturulan sertifikaları yapılandırmak için OpenSSL tarafından kullanılan bir yapılandırma dosyası oluşturma
  • Kök CA sertifikanız olarak hizmet veren otomatik olarak imzalanan bir CA sertifikası isteme ve oluşturma
  1. Bir Git Bash penceresi başlatın ve aşağıdaki komutu çalıştırın ve değerini bu öğreticide sertifikaların oluşturulacağı istenen dizinle değiştirin {base_dir} .

    cd {base_dir}
    
  2. Git Bash penceresinde aşağıdaki komutları birer birer çalıştırın. Bu adım, kök CA için aşağıdaki dizin yapısını ve destek dosyalarını oluşturur.

    Dizin veya dosya Açıklama
    rootca Kök CA'nın kök dizini.
    rootca/certs Kök CA için CA sertifikalarının oluşturulduğu ve depolandığı dizin.
    rootca/db Kök CA için sertifika veritabanının ve destek dosyalarının depolandığı dizin.
    rootca/db/index Kök CA için sertifika veritabanı. komutu touch , daha sonra kullanmak üzere herhangi bir içerik içermeyen bir dosya oluşturur. Sertifika veritabanı, verilen sertifikalar hakkında bilgi içeren OpenSSL tarafından yönetilen bir düz metin dosyasıdır. Sertifika veritabanı hakkında daha fazla bilgi için openssl-ca el ile sayfasına bakın.
    rootca/db/serial Kök CA için oluşturulacak sonraki sertifikanın seri numarasını depolamak için kullanılan dosya. Komutu onaltılık openssl biçimde 16 baytlık rastgele bir sayı oluşturur ve ardından kök CA sertifikasını oluşturmak üzere dosyayı başlatmak üzere bu dosyada depolar.
    rootca/db/crlnumber Kök CA tarafından verilen iptal edilmiş sertifikaların seri numaralarını depolamak için kullanılan dosya. echo Komut, dosyaya örnek bir seri numarası (1001) aktarır.
    rootca/private Özel anahtar da dahil olmak üzere kök CA için özel dosyaların depolandığı dizin.
    Bu dizindeki dosyaların güvenliği ve korunması gerekir.
    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. Önceki adımda oluşturulan dizinde rootca adlı rootca.conf bir metin dosyası oluşturun. Bu dosyayı bir metin düzenleyicisinde açın ve aşağıdaki OpenSSL yapılandırma ayarlarını kopyalayıp bu dosyaya kaydedin.

    Dosya, test kök CA'nızı yapılandırmak için gereken değerleri OpenSSL'ye sağlar. Bu örnekte dosya, önceki adımlarda oluşturulan dizinleri ve dosyaları kullanarak rootca adlı bir kök CA yapılandırmıştır. Dosya aşağıdakiler için yapılandırma ayarları da sağlar:

    • Sertifika Ayırt Edici Ad (DN) alanları için kök CA tarafından kullanılan CA ilkesi
    • Kök CA tarafından oluşturulan sertifika istekleri
    • Kök CA sertifikalarına, alt CA sertifikalarına ve kök CA tarafından verilen istemci sertifikalarına uygulanan X.509 uzantıları

    Not

    home alt CA'nız ca_default için sertifika oluşturulurken bu yapılandırma dosyası da kullanıldığından, bölümünde özniteliği olarak ayarlanır../rootca. Belirtilen göreli yol, OpenSSL'nin bu işlem sırasında alt CA klasörünüzden kök CA klasörünüze gitmesine olanak tanır.

    OpenSSL yapılandırma dosyalarının söz dizimi hakkında daha fazla bilgi için OpenSSL belgelerindeki yapılandırma el ile sayfasına bakın.

    [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 penceresinde aşağıdaki komutu çalıştırarak dizinde rootca bir sertifika imzalama isteği (CSR) ve dizinde rootca/private bir özel anahtar oluşturun. OpenSSL komutu hakkında daha fazla bilgi için OpenSSL req belgelerindeki openssl-req el ile sayfasına bakın.

    Not

    Bu kök CA test amaçlı olsa ve ortak anahtar altyapısının (PKI) bir parçası olarak kullanıma sunulmayacak olsa da, özel anahtarı kopyalamamanızı veya paylaşmamanızı öneririz.

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

    Aşağıdaki örnekte gösterildiği gibi özel anahtar dosyası için bir PEM geçiş tümceciği girmeniz istenir. Özel anahtarınızı ve CSR'nizi oluşturmak için bir geçiş tümceciği girin ve onaylayın.

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

    Devam etmeden önce CSR dosyasının rootca.csrdizininderootca, özel anahtar dosyasının rootca.keyprivate ise alt dizinde bulunduğunu onaylayın.

  5. Git Bash penceresinde aşağıdaki komutu çalıştırarak otomatik olarak imzalanan bir kök CA sertifikası oluşturun. komutu, yapılandırma dosyası uzantılarını sertifikaya uygular ca_ext . Bu uzantılar sertifikanın bir kök CA için olduğunu ve sertifikaları ve sertifika iptal listelerini (CRL) imzalamak için kullanılabileceğini gösterir. OpenSSL komutu hakkında daha fazla bilgi için OpenSSL ca belgelerindeki openssl-ca el ile sayfasına bakın.

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

    Aşağıdaki örnekte gösterildiği gibi özel anahtar dosyası için PEM geçiş tümceciği sağlamanız istenir. Geçiş tümceciğini sağladıktan sonra OpenSSL bir sertifika oluşturur ve ardından kök CA'nız için sertifikayı imzalamanızı ve işlemenizi ister. Kök CA'nız için otomatik olarak imzalanan sertifikayı oluşturmak için her iki istem için de y belirtin.

    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 sertifika veritabanını güncelleştirdikten sonra, hem sertifika dosyasının, rootca.crthem de rootca sertifikanın PEM sertifikası (.pem) dosyasının rootca/certs dizinde mevcut olduğunu onaylayın. .pem dosyasının dosya adı, kök CA sertifikasının seri numarasıyla eşleşir.

Alt CA oluşturma

İç kök CA'nızı oluşturduktan sonra, cihazlarınız için istemci sertifikalarını imzalamak üzere ara CA olarak kullanmak üzere bir alt CA oluşturmanız gerekir. Teoride, bir alt CA oluşturmanız gerekmez; kök CA sertifikanızı IoT hub'ınıza yükleyebilir ve istemci sertifikalarını doğrudan kök CA'nızdan imzalayabilirsiniz. Ancak, istemci sertifikalarını imzalamak için ara CA olarak bir alt CA kullanmak, kök CA'nızın çevrimdışı tutulduğu önerilen bir üretim ortamının benzetimini oluşturur. Başka bir alt CA'yı imzalamak için de bir alt CA kullanabilirsiniz; bu da başka bir alt CA'yı imzalayabilir ve bu şekilde devam edebilir. Diğer alt CA'ları imzalamak için alt CA'ları kullanmak, bir sertifika güven zincirinin parçası olarak bir ara CA hiyerarşisi oluşturur. Bir üretim ortamında, sertifika güven zinciri, imza cihazlarına güven temsili sağlar. Cihazları bir sertifika güven zincirinde imzalama hakkında daha fazla bilgi için bkz . X.509 CA sertifikalarını kullanarak cihazların kimliğini doğrulama.

Kök CA'nıza benzer şekilde, alt CA'nızı oluşturmak ve korumak için kullanılan dosyalar bir klasör yapısında depolanır ve bu işlemin bir parçası olarak başlatılır. Aşağıdaki adımları gerçekleştirin:

  • Alt CA'nız tarafından kullanılan klasörleri ve dosyaları oluşturma ve başlatma
  • Alt CA'nızı ve alt CA'nızla oluşturulan sertifikaları yapılandırmak için OpenSSL tarafından kullanılan bir yapılandırma dosyası oluşturma
  • Kök CA'nız tarafından imzalanan ve alt CA sertifikanız olarak hizmet veren bir CA sertifikası isteme ve oluşturma
  1. Dizini içeren temel dizine rootca dönün. Bu örnekte hem kök CA hem de alt CA aynı temel dizinde yer alır.

    cd ..
    
  2. Git Bash penceresinde aşağıdaki komutları birer birer çalıştırın.

    Bu adım, önceki bölümde kök CA için oluşturulan klasör yapısına ve dosyalara benzer bir dizin yapısı ve alt CA için destek dosyaları oluşturur.

    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. Önceki adımda oluşturulan dizinde subca adlı subca.conf bir metin dosyası oluşturun. Bu dosyayı bir metin düzenleyicisinde açın ve aşağıdaki OpenSSL yapılandırma ayarlarını kopyalayıp bu dosyaya kaydedin.

    Test kök CA'nızın yapılandırma dosyasında olduğu gibi, bu dosya openSSL'ye test alt CA'nızı yapılandırmak için gereken değerleri sağlar. Test senaryolarını veya ortamlarını yönetmek için birden çok alt CA oluşturabilirsiniz.

    OpenSSL yapılandırma dosyalarının söz dizimi hakkında daha fazla bilgi için OpenSSL belgelerindeki yapılandırma ana el ile sayfasına bakın.

    [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 penceresinde aşağıdaki komutları çalıştırarak alt CA dizininde bir özel anahtar ve sertifika imzalama isteği (CSR) oluşturun.

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

    Aşağıdaki örnekte gösterildiği gibi özel anahtar dosyası için bir PEM geçiş tümceciği girmeniz istenir. Özel anahtarınızı ve CSR'nizi oluşturmak için bir geçiş tümceciği girin ve doğrulayın.

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

    Devam etmeden önce CSR dosyasının subca.csr alt CA dizininde ve özel anahtar dosyasının subca.keyprivate alt dizinde mevcut olduğunu onaylayın.

  5. Git Bash penceresinde aşağıdaki komutu çalıştırarak alt CA dizininde bir alt CA sertifikası oluşturun. komutu, yapılandırma dosyası uzantılarını sertifikaya uygular sub_ca_ext . Bu uzantılar sertifikanın bir alt CA için olduğunu ve sertifikaları ve sertifika iptal listelerini (CRL' ler) imzalamak için de kullanılabileceğini gösterir. Kök CA sertifikasının aksine, bu sertifika otomatik olarak imzalanmaz. Bunun yerine, alt CA sertifikası kök CA sertifikasıyla imzalanır ve ortak anahtar altyapısı (PKI) için kullanacağınıza benzer bir sertifika zinciri oluşturulur. Ardından alt CA sertifikası, cihazlarınızı test etmek üzere istemci sertifikalarını imzalamak için kullanılır.

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

    Aşağıdaki örnekte gösterildiği gibi, kök CA'nızın özel anahtar dosyası için geçiş tümceciği girmeniz istenir. Geçiş tümceciği girdikten sonra OpenSSL sertifikanın ayrıntılarını oluşturur ve görüntüler, ardından sertifikayı alt CA'nız için imzalamanızı ve işlemenizi ister. Ast CA'nız için sertifika oluşturmak üzere her iki istem için belirtin 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 sertifika veritabanını güncelleştirdikten sonra, sertifika dosyasının subca.crt alt CA dizininde bulunduğunu ve sertifikanın PEM sertifikası (.pem) dosyasının rootca/certs dizinde mevcut olduğunu onaylayın. .pem dosyasının dosya adı, alt CA sertifikasının seri numarasıyla eşleşir.

Alt CA sertifikanızı IoT hub'ınıza kaydetme

Alt CA sertifikasını IoT hub'ınıza kaydedin; kayıt ve bağlantı sırasında cihazlarınızın kimliğini doğrulamak için bu sertifikayı kullanır. Aşağıdaki adımlarda, alt CA sertifikanızı IoT hub'ınıza yükleme ve otomatik olarak doğrulama adımları açıklanmaktadır.

  1. Azure portalında IoT hub'ınıza gidin ve Kaynak menüsünden Güvenlik ayarları'nın altında Sertifikalar'ı seçin.

  2. Yeni bir CA sertifikası eklemek için komut çubuğundan Ekle'yi seçin.

  3. Sertifika adı alanına alt CA sertifikanız için bir görünen ad girin.

  4. Sertifika .pem veya .cer dosya alanına eklemek için dizinden rootca/certs alt CA sertifikanızın PEM sertifikası (.pem) dosyasını seçin.

  5. Karşıya yüklemede sertifika durumunu doğrulandı olarak ayarla'nın yanındaki kutuyu işaretleyin.

    Karşıya yüklemede sertifika durumunu otomatik olarak doğrulamayı gösteren ekran görüntüsü.

  6. Kaydet'i seçin.

Karşıya yüklenen alt CA sertifikanız, çalışma bölmesinin Sertifikalar sekmesinde durumu Doğrulandı olarak ayarlanmış olarak gösterilir.

Cihaz için istemci sertifikası oluşturma

Alt CA'nızı oluşturduktan sonra cihazlarınız için istemci sertifikaları oluşturabilirsiniz. Alt CA'nız için oluşturulan dosya ve klasörler, istemci sertifikalarınız için CSR, özel anahtar ve sertifika dosyalarını depolamak için kullanılır.

İstemci sertifikasının Konu Ortak Adı (CN) alanının değeri, ilgili cihazı Azure IoT Hub'a kaydederken kullanılan cihaz kimliğinin değerine ayarlanmış olmalıdır.

Aşağıdaki adımları gerçekleştirin:

  • İstemci sertifikası için özel anahtar ve sertifika imzalama isteği (CSR) oluşturma
  • Alt CA sertifikanız tarafından imzalanan bir istemci sertifikası oluşturma
  1. Git Bash pencerenizde hala dizinde olduğunuzdan subca emin olun.

  2. Git Bash penceresinde aşağıdaki komutları teker teker çalıştırın. Yer tutucuyu IoT cihazınızın adıyla değiştirin; örneğin testdevice. Bu adım, istemci sertifikanız için özel anahtarı ve CSR'yi oluşturur.

    Bu adım, istemci sertifikanız için 2048 bit RSA özel anahtarı oluşturur ve ardından bu özel anahtarı kullanarak bir sertifika imzalama isteği (CSR) oluşturur.

    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. İstendiğinde, aşağıdaki örnekte gösterildiği gibi sertifika ayrıntılarını sağlayın.

    Için belirli bir değer sağlamanız gereken tek istem, önceki adımda sağlanan cihaz adıyla aynı olması gereken Ortak Ad'dır. İstemlerin geri kalanı için rastgele değerler atlayabilir veya sağlayabilirsiniz.

    Sertifika ayrıntılarını sağladıktan sonra OpenSSL sertifikanın ayrıntılarını oluşturur ve görüntüler, ardından sertifikayı alt CA'nız için imzalamanızı ve işlemenizi ister. Ast CA'nız için sertifika oluşturmak üzere her iki istem için de y belirtin.

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

    Devam etmeden önce CSR dosyasının alt CA dizininde ve özel anahtar dosyasının private alt dizinde mevcut olduğunu onaylayın. CSR ve özel anahtar dosyalarının biçimleri hakkında daha fazla bilgi için bkz . X.509 sertifikaları.

  4. Git Bash penceresinde aşağıdaki komutu çalıştırın ve cihaz adı yer tutucularını önceki adımlarda kullandığınız adla değiştirin.

    Bu adım, alt CA dizininde bir istemci sertifikası oluşturur. komutu, yapılandırma dosyası uzantılarını sertifikaya uygular client_ext . Bu uzantılar sertifikanın, CA sertifikası olarak kullanılamayan bir istemci sertifikasına ait olduğunu gösterir. İstemci sertifikası, alt CA sertifikasıyla imzalanır.

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

    Aşağıdaki örnekte gösterildiği gibi, alt CA'nızın özel anahtar dosyası için geçiş tümceciği girmeniz istenir. Geçiş tümceciği girdikten sonra OpenSSL sertifikanın ayrıntılarını oluşturur ve görüntüler, ardından cihazınız için istemci sertifikasını imzalamanızı ve işlemenizi ister. İstemci sertifikasını oluşturmak için her iki istem için de y belirtin.

    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 sertifika veritabanını güncelleştirdikten sonra, istemci sertifikasının sertifika dosyasının alt CA dizininde mevcut olduğunu ve istemci sertifikası için PEM sertifikası (.pem) dosyasının, alt CA dizininin sertifikalar alt dizininde bulunduğunu onaylayın. .pem dosyasının dosya adı, istemci sertifikasının seri numarasıyla eşleşir.

Sonraki adımlar

Bu cihaz için oluşturduğunuz istemci sertifikasını test için cihazınızı IoT hub'ınıza kaydedebilirsiniz. Cihaz kaydetme hakkında daha fazla bilgi için Azure portalını kullanarak IoT hub'ı oluşturma bölümündeki IoT hub'ınayeni cihaz kaydetme bölümüne bakın.

Test etmek için birden çok ilgili cihazınız varsa, bir kayıt grubunda birden çok cihaz sağlamak için Azure IoT Hub Cihaz Sağlama Hizmeti'ni kullanabilirsiniz. Cihaz Sağlama Hizmeti'nde kayıt gruplarını kullanma hakkında daha fazla bilgi için bkz . Öğretici: Kayıt gruplarını kullanarak birden çok X.509 cihazı sağlama.

Sertifika dosyalarının biçimleri hakkında daha fazla bilgi için bkz . X.509 sertifikaları.