X.509 sertifikaları

X.509 sertifikaları bir kullanıcıyı, bilgisayarı, hizmeti veya cihazı temsil eden dijital belgelerdir. Sertifika yetkilisi (CA), alt CA veya kayıt yetkilisi X.509 sertifikaları verir. Sertifikalar, sertifika sahibinin ortak anahtarını içerir. Konunun güvenli bir şekilde depolanması gereken özel anahtarını içermezler. RFC 5280 , alanları ve uzantıları dahil olmak üzere ortak anahtar sertifikalarını belgeler. Ortak anahtar sertifikaları dijital olarak imzalı ve genellikle aşağıdaki bilgileri içerir:

  • Sertifika konusu hakkında bilgi
  • Konunun özel anahtarına karşılık gelen ortak anahtar
  • Veren CA hakkında bilgi
  • Desteklenen şifreleme ve/veya dijital imzalama algoritmaları
  • Sertifikanın iptal ve geçerlilik durumunu belirlemeye yönelik bilgiler

Sertifika alanları

X.509 sertifika standardının üç artımlı sürümü vardır ve sonraki her sürüm, standart sertifika alanlarını eklemektedir:

  • 1988'de yayımlanan Sürüm 1 (v1), sertifikalar için ilk X.509 standardını izler.
  • 1993'te yayımlanan Sürüm 2 (v2), Sürüm 1'de bulunan alanlara iki alan ekler.
  • 2008'de yayımlanan Sürüm 3 (v3), X.509 standardının geçerli sürümünü temsil eder. Bu sürüm sertifika uzantıları için destek ekler.

Bu bölüm, X.509 sertifikalarında kullanılabilen sertifika alanları ve sertifika uzantıları için genel bir başvuru olarak amaçlanmıştır. Veri türleri, kısıtlamalar ve diğer ayrıntılar da dahil olmak üzere sertifika alanları ve sertifika uzantıları hakkında daha fazla bilgi için RFC 5280 belirtimine bakın.

Sürüm 1 alanları

Aşağıdaki tabloda X.509 sertifikaları için Sürüm 1 sertifika alanları açıklanmaktadır. Bu tabloda yer alan tüm alanlar sonraki X.509 sertifika sürümlerinde kullanılabilir.

Adı Açıklama
Sürüm Sertifikanın sürüm numarasını tanımlayan bir tamsayı.
Seri Numarası Bir sertifika yetkilisi (CA) tarafından verilen her sertifika için benzersiz sayıyı temsil eden bir tamsayı.
İmza SERTIFIKA yetkilisi tarafından sertifikayı imzalamak için kullanılan şifreleme algoritmasının tanımlayıcısı. Değer hem algoritmanın tanımlayıcısını hem de varsa bu algoritma tarafından kullanılan isteğe bağlı parametreleri içerir.
Veren Sertifikayı veren CA'nın ayırt edici adı (DN).
Geçerli -liğini Sertifikanın geçerli olduğu kapsayıcı zaman aralığı.
Konu Sertifika konusunun ayırt edici adı (DN).
Konu Ortak Anahtar Bilgileri Sertifika konusuna ait ortak anahtar.

Sürüm 2 alanları

Aşağıdaki tabloda, sertifikayı veren hakkında bilgi içeren Sürüm 2 için eklenen alanlar açıklanmaktadır. Ancak bu alanlar nadiren kullanılır. Bu tabloda yer alan tüm alanlar sonraki X.509 sertifika sürümlerinde kullanılabilir.

Adı Açıklama
VerenIn Benzersiz Kimliği Veren CA tarafından tanımlanan, veren CA'yı temsil eden benzersiz tanımlayıcı.
Konu Benzersiz Kimliği Sertifika veren CA tarafından tanımlanan sertifika konusunu temsil eden benzersiz tanımlayıcı.

Sürüm 3 alanları

Aşağıdaki tabloda, X.509 sertifika uzantıları koleksiyonunu temsil eden Sürüm 3 için eklenen alan açıklanmaktadır.

Adı Açıklama
Uzantıları Standart ve İnternet'e özgü sertifika uzantıları koleksiyonu. X.509 v3 sertifikaları için kullanılabilen sertifika uzantıları hakkında daha fazla bilgi için bkz. Sertifika uzantıları.

Sertifika uzantıları

Sürüm 3 ile sunulan sertifika uzantıları, kullanıcılar veya ortak anahtarlarla daha fazla öznitelik ilişkilendirmek ve sertifika yetkilileri arasındaki ilişkileri yönetmek için yöntemler sağlar. Sertifika uzantıları hakkında daha fazla bilgi için RFC 5280 belirtiminin Sertifika Uzantıları bölümüne bakın.

Standart uzantılar

X.509 standardı, İnternet ortak anahtar altyapısında (PKI) kullanılmak üzere bu bölümde yer alan uzantıları tanımlar.

Adı Açıklama
Yetkili Anahtarı Tanımlayıcısı Sertifika konusunu ve bu sertifikayı veren CA sertifikasının seri numarasını veya veren CA'nın ortak anahtarının karması olan tanımlayıcı.
Konu Anahtarı Tanımlayıcısı Geçerli sertifikanın ortak anahtarının karması.
Anahtar Kullanımı Sertifikanın kullanılabilmesini sağlayan hizmetleri tanımlayan bit eşlemli değer.
Özel Anahtar Kullanım Dönemi Bir anahtar çiftinin özel anahtar bölümü için geçerlilik süresi.
Sertifika İlkeleri Sertifika konusunu doğrulamak için kullanılan ilke bilgileri koleksiyonu.
İlke Eşlemeleri Her biri bir kuruluştaki ilkeyi başka bir kuruluştaki ilkeyle eşleyen ilke eşlemeleri koleksiyonu.
Konu Diğer Adı Konu için alternatif ad koleksiyonu.
VerenIn Alternatif Adı Veren CA için alternatif ad koleksiyonu.
Konu Dizini Öznitelikleri X.500 veya LDAP dizininden öznitelik koleksiyonu.
Temel Kısıtlamalar Sertifikanın bir CA'ya mı yoksa kullanıcı, bilgisayar, cihaz veya hizmete mi verildiğini belirlemesine olanak sağlayan bir kısıtlama koleksiyonu. Bu uzantı, var olabilecek alt CA'ların sayısını sınırlayan bir yol uzunluğu kısıtlaması da içerir.
Ad Kısıtlamaları CA tarafından verilen bir sertifikada hangi ad alanlarına izin verildiğini belirten bir kısıtlama koleksiyonu.
İlke Kısıtlamaları CA'lar arasında ilke eşlemelerini yasaklama amacıyla kullanılabilecek kısıtlamalar koleksiyonu.
Genişletilmiş Anahtar Kullanımı Bir sertifikanın ortak anahtarının Anahtar Kullanımı uzantısında tanımlanan amaçların ötesinde nasıl kullanılabileceğini gösteren anahtar amaçlı değerler koleksiyonu.
CRL Dağıtım Noktaları Temel sertifika iptal listesinin (CRL) yayımlandığı URL koleksiyonu.
AnyPolicy'yi engelleme Alt CA sertifikalarında Tüm Verme İlkeleri OID'sinin (2.5.29.32.0) kullanımını engeller
En Yeni CRL Delta CRL Dağıtım Noktası olarak da bilinen bu uzantı, veren CA'nın delta CRL'sinin yayımlandığı bir veya daha fazla URL içerir.

Özel İnternet uzantıları

Bu bölümde yer alan uzantılar standart uzantılara benzer ve uygulamaları veren CA veya sertifika sahibi hakkında çevrimiçi bilgilere yönlendirmek için kullanılabilir.

Adı Açıklama
Yetkili Bilgileri Erişimi Veren CA tarafından sağlanan ek bilgilerin biçimini ve konumunu açıklayan girdi koleksiyonu.
Konu Bilgisi Erişimi Sertifika sahibi tarafından sağlanan ek bilgilerin biçimini ve konumunu açıklayan girdi koleksiyonu.

Sertifika biçimleri

Sertifikalar çeşitli biçimlerde kaydedilebilir. Azure IoT Hub kimlik doğrulaması genellikle Privacy-Enhanced Posta (PEM) ve Kişisel Bilgi Değişimi (PFX) biçimlerini kullanır. Aşağıdaki tabloda sertifikaları temsil etmek için yaygın olarak kullanılan dosyalar ve biçimler açıklanmaktadır.

Biçimlendir Açıklama
İkili sertifika Distinguished Encoding Rules (DER) ASN.1 kodlaması kullanan ham form ikili sertifikası.
ASCII PEM biçimi PEM sertifikası (.pem) dosyası ile -----BEGIN CERTIFICATE----- başlayan ve ile -----END CERTIFICATE-----biten Base64 kodlu bir sertifika içerir. X.509 sertifikaları için en yaygın biçimlerden biri olan PEM biçimi, cihaz sertifikaları gibi belirli sertifikaları karşıya yüklerken IoT Hub için gereklidir.
ASCII PEM anahtarı İsteğe bağlı olarak parola koruması için kullanılan algoritma hakkında daha fazla meta veri içeren Base64 kodlu bir DER anahtarı içerir.
PKCS #7 sertifikası İmzalı veya şifrelenmiş verilerin taşınması için tasarlanmış bir biçim. Sertifika zincirinin tamamını içerebilir. RFC 2315 bu biçimi tanımlar.
PKCS #8 anahtarı Özel anahtar deposunun biçimi. RFC 5208 bu biçimi tanımlar.
PKCS #12 anahtarı ve sertifikası Bir anahtarı ve sertifika zincirinin tamamını depolayıp koruyabilen karmaşık bir biçim. Yaygın olarak .p12 veya .pfx uzantısıyla kullanılır. PKCS #12, PFX biçimiyle eş anlamlıdır. RFC 7292 bu biçimi tanımlar.

Otomatik olarak imzalanan sertifikalar

Otomatik olarak imzalanan iki sertifika kullanarak test amacıyla IoT hub'ınızda bir cihazın kimliğini doğrulayabilirsiniz. Bu kimlik doğrulaması türü bazen parmak izi kimlik doğrulaması olarak adlandırılır çünkü sertifikalar parmak izi veya parmak izi olarak adlandırılan hesaplanan karma değerlerle tanımlanır. Bu hesaplanan karma değerler, IoT Hub tarafından cihazlarınızın kimliğini doğrulamak için kullanılır.

Önemli

Test amacıyla bile sertifika veren Sertifika Yetkilisi (CA) tarafından imzalanan sertifikaları kullanmanızı öneririz. Üretimde hiçbir zaman otomatik olarak imzalanan sertifikalar kullanmayın.

Otomatik olarak imzalanan sertifika oluşturma

Otomatik olarak imzalanan sertifikalar oluşturmak için OpenSSL kullanabilirsiniz. Aşağıdaki adımlar, otomatik olarak imzalanan bir sertifika oluşturmak ve IoT Hub cihazınızın kimliğini doğrulamak için kullanılabilecek bir sertifika parmak izi almak için Bash kabuğunda OpenSSL komutlarını nasıl çalıştırabileceğinizi gösterir.

Not

Test için otomatik olarak imzalanan sertifikalar kullanmak istiyorsanız, her cihaz için iki sertifika oluşturmanız gerekir.

  1. Aşağıdaki komutu çalıştırarak bir özel anahtar oluşturun ve PEM kodlu bir özel anahtar (.key) dosyası oluşturun ve aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirin. Aşağıdaki komut tarafından oluşturulan özel anahtar, 2048 bit şifreleme ile RSA algoritmasını kullanır.

    {KeyFile}. Özel anahtar dosyanızın adı.

    openssl genpkey -out {KeyFile} -algorithm RSA -pkeyopt rsa_keygen_bits:2048
    
  2. Aşağıdaki komutu çalıştırarak bir PKCS #10 sertifika imzalama isteği (CSR) oluşturun ve aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirerek bir CSR (.csr) dosyası oluşturun. İstendiğinde otomatik olarak imzalanan sertifikanız için IoT cihazının cihaz kimliğini belirttiğinizden emin olun.

    {KeyFile}. Özel anahtar dosyanızın adı.

    {CsrFile}. CSR dosyanızın adı.

    {DeviceID}. IoT cihazınızın adı.

    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. CSR'nizi incelemek ve doğrulamak için aşağıdaki komutu çalıştırın ve aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirin.

    {CsrFile}. Sertifika dosyanızın adı.

    openssl req -text -in {CsrFile} -verify -noout
    
  4. Aşağıdaki komutu çalıştırarak otomatik olarak imzalanan bir sertifika oluşturun ve PEM ile kodlanmış bir sertifika (.crt) dosyası oluşturun ve aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirin. Komut, CSR'nizi özel anahtarınız ile dönüştürür ve imzalar ve süresi 365 gün içinde dolan otomatik olarak imzalanan bir sertifika oluşturur.

    {KeyFile}. Özel anahtar dosyanızın adı.

    {CsrFile}. CSR dosyanızın adı.

    {CrtFile}. Sertifika dosyanızın adı.

    openssl x509 -req -days 365 -in {CsrFile} -signkey {KeyFile} -out {CrtFile}
    
  5. Sertifikanın parmak izini almak için aşağıdaki komutu çalıştırın ve aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirin. Bir sertifikanın parmak izi, bu sertifikaya özgü hesaplanan karma değerdir. IoT cihazınızı test için IoT Hub'de yapılandırmak için parmak izine ihtiyacınız vardır.

    {CrtFile}. Sertifika dosyanızın adı.

    openssl x509 -in {CrtFile} -noout -fingerprint
    

Karşıya yükledikten sonra sertifikayı el ile doğrulama

Kök sertifika yetkilisi (CA) sertifikanızı veya alt CA sertifikanızı IoT hub'ınıza yüklediğinizde, sertifikayı otomatik olarak doğrulamayı seçebilirsiniz. Karşıya yükleme sırasında sertifikanızı otomatik olarak doğrulamayı seçmediyseniz sertifikanız durumu Doğrulanmamış olarak gösterilir. Sertifikanızı el ile doğrulamak için aşağıdaki adımları uygulamanız gerekir.

  1. Sertifika Ayrıntıları iletişim kutusunu görüntülemek için sertifikayı seçin.

  2. İletişim kutusunda Doğrulama Kodu Oluştur'a tıklayın.

    Sertifika ayrıntıları iletişim kutusunu gösteren ekran görüntüsü.

  3. Doğrulama kodunu panoya kopyalayın. Sonraki adımlarda sertifika konusu olarak bu doğrulama kodunu kullanmanız gerekir. Örneğin, doğrulama kodu ise 75B86466DA34D2B04C0C4C9557A119687ADAE7D4732BDDB3, bunu bir sonraki adımda gösterildiği gibi sertifikanızın konusu olarak ekleyin.

  4. Doğrulama sertifikası oluşturmanın üç yolu vardır:

    • Microsoft tarafından sağlanan PowerShell betiğini kullanıyorsanız komutunu çalıştırarak New-CACertsVerificationCert "<verification code>" değerini önceden oluşturulan doğrulama koduyla değiştirerek <verification code> adlı VerifyCert4.cerbir sertifika oluşturun. 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.

    • Microsoft tarafından sağlanan Bash betiğini kullanıyorsanız komutunu çalıştırarak ./certGen.sh create_verification_certificate "<verification code>" verification-code.cert.pem adlı bir sertifika oluşturun ve değerini daha önce oluşturulan doğrulama koduyla değiştirin <verification code> . 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.

    • Sertifikalarınızı oluşturmak için OpenSSL kullanıyorsanız, önce bir özel anahtar oluşturmanız, ardından bir sertifika imzalama isteği (CSR) dosyası oluşturmanız gerekir. Aşağıdaki örnekte değerini önceden oluşturulan doğrulama koduyla değiştirin <verification code> :

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

    Ardından, kök CA veya alt CA için uygun yapılandırma dosyasını ve CSR dosyasını kullanarak bir sertifika oluşturun. Aşağıdaki örnekte, kök CA yapılandırma dosyasından ve CSR dosyasından sertifika oluşturmak için OpenSSL'nin nasıl kullanılacağı gösterilmektedir.

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

    Daha fazla bilgi için bkz . Öğretici - Test için sertifika oluşturma ve karşıya yükleme.

  5. Sertifika Ayrıntıları görünümünde yeni sertifikayı seçin.

  6. Sertifika karşıya yüklendikten sonra Doğrula'yı seçin. Sertifika durumu Doğrulandı olarak değiştirilmelidir.

Daha fazla bilgi edinmek için

X.509 sertifikaları ve IoT Hub nasıl kullanıldıkları hakkında daha fazla bilgi için aşağıdaki makalelere bakın: