IoT Edge sertifikalarını yönetme
Şunlar için geçerlidir: IoT Edge 1.5 IoT Edge 1.4
Önemli
IoT Edge 1.5 LTS ve IoT Edge 1.4 LTS desteklenen sürümlerdir. IoT Edge 1.4 LTS, 12 Kasım 2024'te kullanım ömrü sona erer. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.
Tüm IoT Edge cihazları çalışma zamanı ile cihazda çalışan modüller arasında güvenli bağlantılar oluşturmak için sertifikaları kullanır. Ağ geçidi olarak işlevli IoT Edge cihazları da aşağı akış cihazlarına bağlanmak için aynı sertifikaları kullanır.
Not
Bu makalede kullanılan kök CA terimi, IoT çözümünüz için sertifika zincirinde en üstteki yetkilinin sertifikasını ifade eder. Bir genel sertifika yetkilisinin sertifika kökünü veya kuruluşunuzun sertifika yetkilisinin kökünü kullanmanız gerekmez. Genellikle, aslında bir ara CA sertifikasıdır.
Önkoşullar
Azure IoT Edge'in sertifikaları nasıl kullandığını, özellikle de IoT Edge'in sertifikaları nasıl kullandığını anlama başlığındaki kavramlar hakkında bilgi sahibi olmanız gerekir.
IoT Edge cihazı.
Ayarlanmış bir IoT Edge cihazınız yoksa Azure sanal makinesinde bir cihaz oluşturabilirsiniz. Sanal Linux cihazı oluşturma veya Sanal Windows cihazı oluşturma için bu hızlı başlangıç makalelerinden birinde yer alan adımları izleyin.
Yapılandırma şablonunun ardından IoT Edge yapılandırma dosyasını
config.toml
düzenleyebilme.Şablonunuz
config.toml
şablonu temel almıyorsa, şablonu açın ve açıklamalı kılavuzu kullanarak şablonun yapısını izleyen yapılandırma bölümleri ekleyin.Yapılandırılmamış yeni bir IoT Edge yüklemeniz varsa, yapılandırmayı başlatmak için şablonu kopyalayın. Mevcut bir yapılandırmanız varsa bu komutu kullanmayın. Dosyanın üzerine yazar.
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
Biçim gereksinimleri
İpucu
- Sertifika, DER (Ayırt Edici Kodlama Kuralları) adlı ikili gösterimde veya PEM (Privacy Enhanced Mail) adlı metinsel gösterimde kodlanabilir. PEM biçiminde üst
-----BEGIN CERTIFICATE-----
bilgi, ardından base64 kodlu DER ve ardından bir-----END CERTIFICATE-----
alt bilgi bulunur. - Sertifikaya benzer şekilde, özel anahtar ikili DER veya metin gösterimi PEM'sinde kodlanabilir.
- PEM çizgili olduğundan, hem hem
PRIVATE KEY
deCERTIFICATE
öğesini aynı dosyada sıralı olarak birleştiren bir PEM oluşturmak da mümkündür. - Son olarak, sertifika ve özel anahtar, isteğe bağlı bir parolayla şifrelenmiş PKCS#12 adlı ikili gösterimde birlikte kodlanabilir.
Dosya uzantıları rastgeledir ve komutunu çalıştırmanız file
veya dosyayı görüntülemeniz ve türü doğrulamanız gerekir. Genel olarak, dosyalar aşağıdaki uzantı kurallarını kullanır:
.cer
DER veya PEM biçiminde bir sertifikadır..pem
bir sertifika, özel anahtar veya PEM biçiminde her ikisi de olabilir..pfx
bir PKCS#12 dosyasıdır.
IoT Edge için sertifikanın ve özel anahtarın şunlar olması gerekir:
- PEM biçimi
- Dosyaları ayırma
- Çoğu durumda, tam zincirle
PKI sağlayıcınızdan bir .pfx
dosya alırsanız, büyük olasılıkla sertifika ve özel anahtar tek bir dosyada birlikte kodlanmıştır. komutunu kullanarak file
bunun bir PKCS#12 dosya türü olduğunu doğrulayın. openssl pkcs12 komutunu kullanarak pkCS#12 .pfx
dosyasını PEM dosyalarına dönüştürebilirsiniz.
PKI sağlayıcınız bir .cer
dosya sağlıyorsa, ile aynı sertifikayı .pfx
içerebilir veya PKI sağlayıcısının veren (kök) sertifikası olabilir. Doğrulamak için, komutuyla openssl x509
dosyayı inceleyin. Sertifika veren sertifikaysa:
- DER (ikili) biçimindeyse, ile
openssl x509 -in cert.cer -out cert.pem
PEM'ye dönüştürün. - GÜVEN paketi olarak PEM dosyasını kullanın. Güven paketi hakkında daha fazla bilgi için sonraki bölüme bakın.
Önemli
PKI altyapınız RSA-2048 bit anahtarlarını ve EC P-256 anahtarlarını desteklemelidir. Örneğin, EST sunucularınız bu anahtar türlerini desteklemelidir. Diğer anahtar türlerini kullanabilirsiniz, ancak biz yalnızca RSA-2048 bit anahtarlarını ve EC P-256 anahtarlarını test ederiz.
İzin gereksinimleri
Aşağıdaki tabloda IoT Edge sertifikaları için gereken dosya ve dizin izinleri listelanmıştır. Sertifikalar için tercih edilen dizin ve /var/aziot/secrets/
anahtarlarıdır/var/aziot/certs/
.
Dosya veya dizin | İzinler | Sahip |
---|---|---|
/var/aziot/certs/ certificates dizini |
drwxr-xr-x (755) | aziotcs |
uygulamasındaki sertifika dosyaları /var/aziot/certs/ |
-wr-r--r-- (644) | aziotcs |
/var/aziot/secrets/ keys dizini |
drwx------ (700) | aziotks |
içindeki anahtar dosyaları /var/aziot/secrets/ |
-wr------- (600) | aziotks |
Dizinleri oluşturmak, izinleri ayarlamak ve sahibini ayarlamak için aşağıdaki komutları çalıştırın:
# If the certificate and keys directories don't exist, create, set ownership, and set permissions
sudo mkdir -p /var/aziot/certs
sudo chown aziotcs:aziotcs /var/aziot/certs
sudo chmod 755 /var/aziot/certs
sudo mkdir -p /var/aziot/secrets
sudo chown aziotks:aziotks /var/aziot/secrets
sudo chmod 700 /var/aziot/secrets
# Give aziotcs ownership to certificates
# Read and write for aziotcs, read-only for others
sudo chown -R aziotcs:aziotcs /var/aziot/certs
sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \;
# Give aziotks ownership to private keys
# Read and write for aziotks, no permission for others
sudo chown -R aziotks:aziotks /var/aziot/secrets
sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
# Verify permissions of directories and files
sudo ls -Rla /var/aziot
Doğru sahiplik ve izin içeren listenin çıktısı aşağıdaki çıkışa benzer:
azureUser@vm:/var/aziot$ sudo ls -Rla /var/aziot
/var/aziot:
total 16
drwxr-xr-x 4 root root 4096 Dec 14 00:16 .
drwxr-xr-x 15 root root 4096 Dec 14 00:15 ..
drwxr-xr-x 2 aziotcs aziotcs 4096 Jan 14 00:31 certs
drwx------ 2 aziotks aziotks 4096 Jan 23 17:23 secrets
/var/aziot/certs:
total 20
drwxr-xr-x 2 aziotcs aziotcs 4096 Jan 14 00:31 .
drwxr-xr-x 4 root root 4096 Dec 14 00:16 ..
-rw-r--r-- 1 aziotcs aziotcs 1984 Jan 14 00:24 azure-iot-test-only.root.ca.cert.pem
-rw-r--r-- 1 aziotcs aziotcs 5887 Jan 14 00:27 iot-edge-device-ca-devicename-full-chain.cert.pem
/var/aziot/secrets:
total 16
drwx------ 2 aziotks aziotks 4096 Jan 23 17:23 .
drwxr-xr-x 4 root root 4096 Dec 14 00:16 ..
-rw------- 1 aziotks aziotks 3243 Jan 14 00:28 iot-edge-device-ca-devicename.key.pem
Güvenilen kök CA'ları yönetme (güven paketi)
IoT Edge ve modüller ile güven kökü olarak otomatik olarak imzalanan sertifika yetkilisi (CA) sertifikası kullanmak güven paketi olarak bilinir. Güven paketi, IoT Edge ve modüllerin sunucularla iletişim kurması için kullanılabilir. Güven paketini yapılandırmak için IoT Edge yapılandırma dosyasında dosya yolunu belirtin.
Bir PKI sağlayıcısından kök CA sertifikasını alın.
Sertifikanın biçim gereksinimlerini karşılayıp karşılamadığını denetleyin.
PEM dosyasını kopyalayın ve IoT Edge'in sertifika hizmeti erişimi verin. Örneğin, dizin ile
/var/aziot/certs
:# Make the directory if doesn't exist sudo mkdir /var/aziot/certs -p # Change cert directory user and group ownership to aziotcs and set permissions sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs # Copy certificate into certs directory sudo cp root-ca.pem /var/aziot/certs # Give aziotcs ownership to certificate and set read and write permission for aziotcs, read-only for others sudo chown aziotcs:aziotcs /var/aziot/certs/root-ca.pem sudo chmod 644 /var/aziot/certs/root-ca.pem
IoT Edge yapılandırma dosyasında
config.toml
Güven paketi sertifikası bölümünü bulun. Bölüm eksikse, yapılandırma şablonu dosyasından kopyalayabilirsiniz.İpucu
Yapılandırma dosyası henüz cihazınızda yoksa şablon olarak kullanarak
/etc/aziot/config.toml.edge.template
oluşturun.trust_bundle_cert
Anahtarı sertifika dosyası konumuna ayarlayın.trust_bundle_cert = "file:///var/aziot/certs/root-ca.pem"
Yapılandırmayı uygulayın.
sudo iotedge config apply
kök CA'yi işletim sistemi sertifika deposuna yükleme
Sertifikayı güven paketi dosyasına yüklemek kapsayıcı modüllerinin kullanımına sunulur ancak Azure Cihaz Güncelleştirmesi veya Defender gibi modülleri barındırmaz. Konak düzeyi bileşenleri kullanıyorsanız veya diğer TLS sorunlarıyla karşılaşırsanız, kök CA sertifikasını da işletim sistemi sertifika deposuna yükleyin:
sudo cp /var/aziot/certs/my-root-ca.pem /usr/local/share/ca-certificates/my-root-ca.pem.crt
sudo update-ca-certificates
Sertifika ve özel anahtar dosyalarını içeri aktarma
IoT Edge, Azure'da kimlik doğrulaması yapmak veya doğrulamak, yeni modül sunucusu sertifikaları vermek ve EST sunucularında kimlik doğrulaması yapmak için mevcut sertifikaları ve özel anahtar dosyalarını kullanabilir. Bunları yüklemek için:
Sertifika ve özel anahtar dosyalarının biçim gereksinimlerini karşıladığından denetleyin.
PEM dosyasını IoT Edge modüllerinin erişebileceği IoT Edge cihazına kopyalayın. Örneğin,
/var/aziot/
dizin.# If the certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secrets # Copy certificate and private key into the correct directory sudo cp my-cert.pem /var/aziot/certs sudo cp my-private-key.pem /var/aziot/secrets
IoT Edge'in sertifika hizmetine ve anahtar hizmetine
aziotcs
aziotks
sırasıyla sertifikaya ve özel anahtara sahiplik verin.# Give aziotcs ownership to certificate # Read and write for aziotcs, read-only for others sudo chown aziotcs:aziotcs /var/aziot/certs/my-cert.pem sudo chmod 644 /var/aziot/certs/my-cert.pem # Give aziotks ownership to private key # Read and write for aziotks, no permission for others sudo chown aziotks:aziotks /var/aziot/secrets/my-private-key.pem sudo chmod 600 /var/aziot/secrets/my-private-key.pem
içinde
config.toml
, yapılandırılan sertifika türü için ilgili bölümü bulun. Örneğin, anahtar sözcüğünücert
arayabilirsiniz.Yapılandırma şablonundaki örneği kullanarak cihaz kimliği sertifikasını veya Edge CA dosyalarını yapılandırın. Örnek desen:
cert = "file:///var/aziot/certs/my-cert.pem" pk = "file:///var/aziot/secrets/my-private-key.pem"
Yapılandırmayı uygulama
sudo iotedge config apply
Sertifikaların süresi dolduğunda hataları önlemek için, sertifika süre sonu öncesinde dosyaları ve yapılandırmayı el ile güncelleştirmeyi unutmayın.
Örnek: PKI sağlayıcısından cihaz kimliği sertifika dosyalarını kullanma
PKI sağlayıcınızdan bir TLS istemci sertifikası ve özel anahtar isteyin.
Cihaz kimliği sertifika gereksinimleri:
- Standart istemci sertifikası uzantıları: extendedKeyUsage = clientAuth keyUsage = critical, digitalSignature
- CA sertifika döndürmesi için aynı CN'ye sahip CA'ları veren CA'ları ayırt etmeye yardımcı olan anahtar tanımlayıcıları.
- subjectKeyIdentifier = karma
- authorityKeyIdentifier = keyid:always,issuer:always
Ortak adın (CN) IoT Hub'a kayıtlı IoT Edge cihaz kimliğiyle veya DPS ile kayıt kimliğiyle eşleştiğinden emin olun. Örneğin, aşağıdaki cihaz kimliği sertifikasında eşleşmesi Subject: CN = my-device
gereken önemli alan yer alır.
Örnek cihaz kimliği sertifikası:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 48 (0x30)
Signature Algorithm: ecdsa-with-SHA256
Issuer: CN = myPkiCA
Validity
Not Before: Jun 28 21:27:30 2022 GMT
Not After : Jul 28 21:27:30 2022 GMT
Subject: CN = my-device
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:ad:b0:63:1f:48:19:9e:c4:9d:91:d1:b0:b0:e5:
...
80:58:63:6d:ab:56:9f:90:4e:3f:dd:df:74:cf:86:
04:af
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature
X509v3 Extended Key Usage:
TLS Web Client Authentication
X509v3 Subject Key Identifier:
C7:C2:DC:3C:53:71:B8:42:15:D5:6C:4B:5C:03:C2:2A:C5:98:82:7E
X509v3 Authority Key Identifier:
keyid:6E:57:C7:FC:FE:50:09:75:FA:D9:89:13:CB:D2:CA:F2:28:EF:9B:F6
Signature Algorithm: ecdsa-with-SHA256
30:45:02:20:3c:d2:db:06:3c:d7:65:b7:22:fe:df:9e:11:5b:
...
eb:da:fc:f1:6a:bf:31:63:db:5a:16:02:70:0f:cf:c8:e2
-----BEGIN CERTIFICATE-----
MIICdTCCAhugAwIBAgIBMDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxlc3RFeGFt
...
354RWw+eLOpQSkTqXxzjmfw/kVOOAQIhANvRmyCQVb8zLPtqdOVRkuva/PFqvzFj
21oWAnAPz8ji
-----END CERTIFICATE-----
İpucu
PKI tarafından sağlanan sertifika dosyalarına erişim olmadan test etmek için bkz . Kısa süreli üretim dışı cihaz kimlik sertifikası ve özel anahtar oluşturmak üzere cihaz özelliklerini test etmek için tanıtım sertifikaları oluşturma.
IoT Hub ile sağlama sırasında yapılandırma örneği:
[provisioning]
source = "manual"
# ...
[provisioning.authentication]
method = "x509"
identity_cert = "file:///var/aziot/device-id.pem"
identity_pk = "file:///var/aziot/device-id.key.pem"
DPS ile sağlama sırasında yapılandırma örneği:
[provisioning]
source = "dps"
# ...
[provisioning.attestation]
method = "x509"
registration_id = "my-device"
identity_cert = "file:///var/aziot/device-id.pem"
identity_pk = "file:///var/aziot/device-id.key.pem"
El ile sertifika yönetimiyle ilgili ek yük riskli ve hataya açık olabilir. Üretim için IoT Edge'in otomatik sertifika yönetimiyle kullanılması önerilir.
Edge CA'sı yönetme
Edge CA'nın iki farklı modu vardır:
- Hızlı başlangıç varsayılan davranıştır. Hızlı başlangıç test amaçlıdır ve üretim için uygun değildir .
- Üretim modu, Edge CA sertifikası ve özel anahtarı için kendi kaynağınızı sağlamanızı gerektirir.
Hızlı Başlangıç Edge CA'sı
Kullanmaya başlamaya yardımcı olmak için IoT Edge, varsayılan olarak ilk kez başlatıldığında otomatik olarak bir Edge CA sertifikası oluşturur. Otomatik olarak imzalanan bu sertifika, üretime değil yalnızca geliştirme ve test senaryolarına yöneliktir. Varsayılan olarak, sertifikanın süresi 90 gün sonra dolar. Süre sonu yapılandırılabilir. Bu davranış, hızlı başlangıç Edge CA'sı olarak adlandırılır.
Hızlı Başlangıç Edge CA'sı , IoT Edge yapılandırma olmadan ilk yüklendiğinde ve diğer IoT Edge modüllerinin geçerli bir sunucu sertifikasına sahip olmasını sağlar edgeHub
. Modüllerin veya aşağı akış cihazlarının güvenli iletişim kanalları oluşturması gerektiğinden sertifika gereklidiredgeHub
. Hızlı başlangıç Edge CA'sı olmadan, bir PKI sağlayıcısından veya gibi openssl
araçlarla geçerli bir sunucu sertifikası sağlamanız gerekeceğinden kullanmaya başlamak önemli ölçüde daha zor olabilir.
Önemli
Yerel olarak oluşturulan sertifika bir PKI'ya bağlı olmadığından, üretim için hızlı başlangıç Edge CA'sını asla kullanmayın.
Sertifika tabanlı kimliğin güvenliği, sertifikanın (belge) yalnızca bir bileşen olduğu iyi çalıştırılan bir PKI'dan (altyapı) türetilir. İyi çalıştırılan bir PKI, güvenlik ilkelerinin tanımlanmasını, uygulanmasını, yönetilmesini ve uygulanmasının sertifika verme, iptal etme ve yaşam döngüsü yönetimiyle sınırlı olmamak üzere eklenmesini sağlar.
Hızlı başlangıç Edge CA'sı için kullanım ömrünü özelleştirme
Sertifika süre sonunu varsayılan 90 gün dışında bir değerle yapılandırmak için, gün olarak değerini yapılandırma dosyasının Edge CA sertifikası (Hızlı Başlangıç) bölümüne ekleyin.
[edge_ca]
auto_generated_edge_ca_expiry_days = 180
Daha önce oluşturulmuş sertifikaları kaldırmak için ve /var/lib/aziot/keyd/keys
klasörlerinin /var/lib/aziot/certd/certs
içeriğini silin ve ardından yapılandırmayı uygulayın.
Hızlı başlangıç Edge CA'sı yenileme
Varsayılan olarak IoT Edge, sertifika ömrünün %80'indeyken hızlı başlangıç Edge CA sertifikasını otomatik olarak yeniler. Örneğin, bir sertifikanın 90 günlük ömrü varsa IoT Edge, Edge CA sertifikasını verme tarihinden itibaren 72 gün içinde otomatik olarak yeniden oluşturur.
Otomatik yenileme mantığını değiştirmek için, içindeki Edge CA sertifikası bölümüne config.toml
aşağıdaki ayarları ekleyin. Örneğin:
[edge_ca.auto_renew]
rotate_key = true
threshold = "70%"
retry = "2%"
Üretimde Edge CA
Bir üretim senaryosuna geçtikten veya ağ geçidi cihazı oluşturmak istediğinizde, artık hızlı başlangıç Edge CA'sını kullanamazsınız.
Seçeneklerden biri kendi sertifikalarınızı sağlamak ve bunları el ile yönetmektir. Ancak, riskli ve hataya açık el ile sertifika yönetimi işleminden kaçınmak için mümkün olduğunda bir EST sunucusu kullanın.
Dikkat
Edge CA sertifikasının ortak adı (CN), cihazın yapılandırma dosyasında config.toml veya IoT Hub'a kayıtlı cihaz kimliğinde tanımlanan cihaz ana bilgisayar adı parametresiyle eşleşemez.
Edge CA yenilemesini planlama
Edge CA sertifikası yenilendiğinde, modül sunucusu sertifikaları gibi verilen tüm sertifikalar yeniden oluşturulur. Modüllere yeni sunucu sertifikaları vermek için, Edge CA sertifikası yenilendiğinde IoT Edge tüm modülleri yeniden başlatır.
Modül yeniden başlatmalarının olası olumsuz etkilerini en aza indirmek için Edge CA sertifikasını belirli bir zamanda (örneğin, threshold = "10d"
) yenilemeyi planlayın ve çözümün bağımlılarını kapalı kalma süresi hakkında bilgilendirin.
Örnek: PKI sağlayıcısından Edge CA sertifika dosyalarını kullanma
PKI sağlayıcınızdan aşağıdaki dosyaları isteyin:
- PKI'nın kök CA sertifikası
- Veren/CA sertifikası ve ilişkili özel anahtar
Veren CA sertifikasının Edge CA olması için şu uzantılara sahip olması gerekir:
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
basicConstraints = critical, CA:TRUE, pathlen:0
keyUsage = critical, digitalSignature, keyCertSign
Sonuç Edge CA sertifikası örneği:
openssl x509 -in my-edge-ca-cert.pem -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 4098 (0x1002)
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN = myPkiCA
Validity
Not Before: Aug 27 00:00:50 2022 GMT
Not After : Sep 26 00:00:50 2022 GMT
Subject: CN = my-edge-ca.ca
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (4096 bit)
Modulus:
00:e1:cb:9c:c0:41:d2:ee:5d:8b:92:f9:4e:0d:3e:
...
25:f5:58:1e:8c:66:ab:d1:56:78:a5:9c:96:eb:01:
e4:e3:49
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
FD:64:48:BB:41:CE:C1:8A:8A:50:9B:2B:2D:6E:1D:E5:3F:86:7D:3E
X509v3 Authority Key Identifier:
keyid:9F:E6:D3:26:EE:2F:D7:84:09:63:84:C8:93:72:D5:13:06:8E:7F:D1
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 Key Usage: critical
Digital Signature, Certificate Sign
Signature Algorithm: sha256WithRSAEncryption
20:c9:34:41:a3:a4:8e:7c:9c:6e:17:f5:a6:6f:e5:fc:6e:59:
...
7c:20:5d:e5:51:85:4c:4d:f7:f8:01:84:87:27:e3:76:65:47:
9e:6a:c3:2e:1a:f0:dc:9d
-----BEGIN CERTIFICATE-----
MIICdTCCAhugAwIBAgIBMDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxlc3RFeGFt
...
354RWw+eLOpQSkTqXxzjmfw/kVOOAQIhANvRmyCQVb8zLPtqdOVRkuva/PFqvzFj
21oWAnAPz8ji
-----END CERTIFICATE-----
En son dosyaları aldıktan sonra güven paketini güncelleştirin:
trust_bundle_cert = "file:///var/aziot/root-ca.pem"
Ardından IoT Edge'i sertifika ve özel anahtar dosyalarını kullanacak şekilde yapılandırın:
[edge_ca]
cert = "file:///var/aziot/my-edge-ca-cert.pem"
pk = "file:///var/aziot/my-edge-ca-private-key.key.pem"
Daha önce cihazda IoT Edge için başka sertifikalar kullandıysanız içindeki dosyaları /var/lib/aziot/certd/certs
ve içindeki sertifikalarla ilişkili özel anahtarları (tüm anahtarlarla değil ) /var/lib/aziot/keyd/keys
silin. IoT Edge, bunları sağladığınız yeni CA sertifikasıyla yeniden oluşturur.
Bu yaklaşım, sertifikanın süresi dolduğunda dosyaları el ile güncelleştirmenizi gerektirir. Bu sorunu önlemek için otomatik yönetim için EST kullanmayı göz önünde bulundurun.
EST sunucusu ile otomatik sertifika yönetimi
IoT Edge, otomatik sertifika verme ve yenileme için Güvenli Aktarım Üzerinden Kayıt (EST) sunucusuyla arabirim oluşturabilir. Riskli ve hataya açık olabilecek el ile sertifika yönetimi gereksiniminin yerini aldığı için üretim için EST kullanılması önerilir. Genel olarak yapılandırılabilir ve her sertifika türü için geçersiz kılınabilir.
Bu senaryoda bootstrap sertifikasının ve özel anahtarın uzun ömürlü olması ve üretim sırasında cihaza yüklenmesi beklenir. IoT Edge, ilk isteğin sonraki istekler için kimlik sertifikası verme ve DPS veya IoT Hub kimlik doğrulaması için EST sunucusunda kimlik doğrulaması yapmak için bootstrap kimlik bilgilerini kullanır.
EST sunucusuna erişim elde edin. EST sunucunuz yoksa test etmeye başlamak için aşağıdaki seçeneklerden birini kullanın:
Öğretici: Azure IoT Edge için Güvenli Aktarım Sunucusu üzerinden Kaydı Yapılandırma adımlarını kullanarak bir test EST sunucusu oluşturun.
Microsoft, bir tanıtım hesabı sağlamak için GlobalSign ile iş ortağıdır.
IoT Edge cihaz yapılandırma dosyasında
config.toml
, IoT Edge'in EST sunucusunun TLS sertifikasını doğrulamak için kullandığı güvenilir bir kök sertifikanın yolunu yapılandırın. EST sunucusunun genel olarak güvenilen bir kök TLS sertifikası varsa bu adım isteğe bağlıdır.[cert_issuance.est] trusted_certs = [ "file:///var/aziot/root-ca.pem", ]
EST sunucusu için varsayılan bir URL sağlayın. içinde
config.toml
, EST sunucusunun URL'si ile aşağıdaki bölümü ekleyin:[cert_issuance.est.urls] default = "https://example.org/.well-known/est"
EST sertifikasını kimlik doğrulaması için yapılandırmak için sertifika ve özel anahtarın yolunu içeren aşağıdaki bölümü ekleyin:
[cert_issuance.est.auth] bootstrap_identity_cert = "file:///var/aziot/my-est-id-bootstrap-cert.pem" bootstrap_identity_pk = "file:///var/aziot/my-est-id-bootstrap-pk.key.pem" [cert_issuance.est.identity_auto_renew] rotate_key = true threshold = "80%" retry = "4%"
Yapılandırma değişikliklerini uygulayın.
sudo iotedge config apply
içindeki [cert_issuance.est.identity_auto_renew]
ayarlar sonraki bölümde ele alınmıştır.
Kullanıcı adı ve parola kimlik doğrulaması
Sertifika kullanarak EST sunucusunda kimlik doğrulaması mümkün değilse, bunun yerine paylaşılan bir gizli dizi veya kullanıcı adı ve parola kullanabilirsiniz.
[cert_issuance.est.auth]
username = "username"
password = "password"
Otomatik yenileme parametrelerini yapılandırma
IoT Edge, sertifika dosyalarını el ile yönetmek yerine, süresi dolmadan önce sertifikaları alma ve yenileme özelliğine sahiptir. Sertifika yenileme, IoT Edge'in yönetebileceği bir verme yöntemi gerektirir. Güvenli Aktarım (EST) sunucusu üzerinden kayıt, bir verme yöntemidir, ancak IoT Edge de hızlı başlangıç CA'sını varsayılan olarak otomatik olarak yenileyebilir. Sertifika yenileme, sertifika türü başına yapılandırılır.
içinde
config.toml
, yapılandırılan sertifika türü için ilgili bölümü bulun. Örneğin, anahtar sözcüğünüauto_renew
arayabilirsiniz.Yapılandırma şablonundaki örneği kullanarak cihaz kimliği sertifikasını, Edge CA'yı veya EST kimlik sertifikalarını yapılandırın. Örnek desen:
[REPLACE_WITH_CERT_TYPE] # ... method = "est" # ... [REPLACE_WITH_CERT_TYPE.auto_renew] rotate_key = true threshold = "80%" retry = "4%"
Yapılandırmayı uygulama
sudo iotege config apply
Aşağıdaki tabloda, içindeki her seçeneğin auto_renew
ne yaptığı listelenir:
Parametre | Açıklama |
---|---|
rotate_key |
IoT Edge sertifikayı yenilediğinde özel anahtarın döndürülüp döndürülmemesi gerektiğini denetler. |
threshold |
IoT Edge'in sertifikayı yenilemeye başlaması gereken zamanları ayarlar. Şu şekilde belirtilebilir: - Yüzde: ile arasında 0 ve 100 ardından % gelen tamsayı. Yenileme, sertifika ömrüne göre başlar. Örneğin, olarak 80% ayarlandığında, 100 gün boyunca geçerli olan bir sertifika süresi dolmadan 20 gün önce yenilenmeye başlar. - Mutlak saat: tamsayı ve min ardından (dakika) veya day (gün). Yenileme, sertifika süre sonu süresine göre başlar. Örneğin, dört gün veya 10min 10 dakika olarak ayarlandığında4day , sertifika süresi dolmadan önce bu zamanda yenilenmeye başlar. değerinin sertifika ömründen daha büyük olduğu threshold yanlışlıkla yanlış yapılandırmayı önlemek için mümkün olduğunda bunun yerine yüzde kullanmanızı öneririz. |
retry |
, yenileme işleminin hata durumunda ne sıklıkta yeniden denenmesi gerektiğini denetler. gibithreshold , aynı biçim kullanılarak yüzde veya mutlak süre olarak da belirtilebilir. |
Örnek: CIHAZ kimliği sertifikalarını EST ile otomatik olarak yenileme
Üretim için önerilen otomatik cihaz kimliği sertifikası verme ve yenileme için EST ve IoT Edge'i kullanmak için IoT Edge'in DPS CA tabanlı bir kayıt grubunun parçası olarak sağlanması gerekir. Örneğin:
## DPS provisioning with X.509 certificate
[provisioning]
source = "dps"
# ...
[provisioning.attestation]
method = "x509"
registration_id = "my-device"
[provisioning.attestation.identity_cert]
method = "est"
common_name = "my-device"
[provisioning.attestation.identity_cert.auto_renew]
rotate_key = true
threshold = "80%"
retry = "4%"
Verme yöntemi EST olarak ayarlandığında Edge CA için otomatik yenileme etkinleştirilmelidir. Birçok IoT Edge işlevini bozan Edge CA'sı süre sonu kaçınılmalıdır. Bir durum Edge CA sertifika yaşam döngüsü üzerinde tam denetim gerektiriyorsa, bunun yerine el ile Edge CA yönetim yöntemini kullanın.
IOT Hub ile el ile X.509 sağlama ve bireysel kayıtla DPS dahil olmak üzere EST veya auto_renew
diğer sağlama yöntemleriyle kullanmayın. IoT Edge, bir sertifika yenilendiğinde Azure'da sertifika parmak izlerini güncelleştiremez ve bu da IoT Edge'in yeniden bağlanmasını engeller.
Örnek: EST ile otomatik Edge CA yönetimi
Üretim için EST otomatik Edge CA verme ve yenilemeyi kullanın. EST sunucusu yapılandırıldıktan sonra genel ayarı kullanabilir veya bu örneğe benzer şekilde geçersiz kılabilirsiniz:
[edge_ca]
method = "est"
common_name = "my-edge-CA"
url = "https://ca.example.org/.well-known/est"
bootstrap_identity_cert = "file:///var/aziot/my-est-id-bootstrap-cert.pem"
bootstrap_identity_pk = "file:///var/aziot/my-est-id-bootstrap-pk.key.pem"
[edge_ca.auto_renew]
rotate_key = true
threshold = "90%"
retry = "2%"
Modül sunucusu sertifikaları
Edge Daemon, Edge modülleri tarafından kullanılmak üzere modül sunucusu ve kimlik sertifikaları sağlar. Gerektiğinde kimliklerini ve sunucu sertifikalarını yenilemek Edge modüllerinin sorumluluğundadır.
Yenileme
Sunucu sertifikaları Edge CA sertifikasından verilebilir. Verme yöntemi ne olursa olsun, bu sertifikaların modül tarafından yenilenmesi gerekir. Özel bir modül geliştirirseniz, modülünüzde yenileme mantığını uygulamanız gerekir.
edgeHub modülü sertifika yenileme özelliğini destekler. EdgeHub modülü sunucu sertifikası yenilemesini aşağıdaki ortam değişkenlerini kullanarak yapılandırabilirsiniz:
- ServerCertificateRenewAfterInMs: EdgeHub sunucu sertifikasının süresi sona erme süresinden bağımsız olarak yenilendiğinde süreyi milisaniye olarak ayarlar.
- MaxCheckCertExpiryInMs: EdgeHub hizmeti EdgeHub sunucu sertifikasının süre sonunu denetlediğinde süreyi milisaniye olarak ayarlar. Değişken ayarlanırsa, sertifika süre sonu süresinden bağımsız olarak denetim gerçekleşir.
Ortam değişkenleri hakkında daha fazla bilgi için bkz . EdgeHub ve EdgeAgent ortam değişkenleri.
1.2 ve sonraki sürümlerdeki değişiklikler
- Cihaz CA sertifikası Edge CA sertifikası olarak yeniden adlandırıldı.
- İş yükü CA sertifikası kullanım dışı bırakıldı. IoT Edge güvenlik yöneticisi, ara iş yükü CA sertifikası olmadan IoT Edge hub
edgeHub
sunucu sertifikasını doğrudan Edge CA sertifikasından oluşturur. - Varsayılan yapılandırma dosyasının adı ve konumu varsayılan olarak ile
/etc/iotedge/config.yaml
/etc/aziot/config.toml
arasındadır. Komutu,iotedge config import
yapılandırma bilgilerinin eski konumdan ve söz diziminden yenisine geçirilmesine yardımcı olmak için kullanılabilir.
Sonraki adımlar
IoT Edge cihazına sertifika yüklemek, çözümünüzü üretim ortamında dağıtmadan önce gerekli bir adımdır. IoT Edge çözümünüzü üretim ortamında dağıtmaya hazırlanma hakkında daha fazla bilgi edinin.