Aşağı akış cihazını Azure IoT Edge ağ geçidine bağlama

Şunlar için geçerlidir:IoT Edge 1.4 onay işareti IoT Edge 1.4

Önemli

IoT Edge 1.4 desteklenen sürümdür. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.

Burada aşağı akış cihazlarıyla IoT Edge saydam ağ geçitleri arasında güvenilir bağlantı kurma yönergelerini bulabilirsiniz. Saydam bir ağ geçidi senaryosunda bir veya daha fazla cihaz, ioT Hub bağlantısını koruyan tek bir ağ geçidi cihazı üzerinden iletilerini geçirebilir. Burada ağ geçidi ve IoT Edge ağ geçidi terimleri saydam ağ geçidi olarak yapılandırılmış bir IoT Edge cihazına başvurur.

Not

Aşağı akış cihazı verileri doğrudan İnternet'e veya ağ geçidi cihazlarına (IoT Edge etkin veya değil) yayar. Alt cihaz, iç içe topolojideki bir aşağı akış cihazı veya ağ geçidi cihazı olabilir.

Başarılı bir saydam ağ geçidi bağlantısı kurmanın üç genel adımı vardır. Bu makalede üçüncü adım açıklanmaktadır.

  1. Aşağı akış cihazlarının güvenli bir şekilde bağlanabilmesi için ağ geçidi cihazını bir sunucu olarak yapılandırın. Aşağı akış cihazlarından ileti almak ve bunları uygun hedefe yönlendirmek için ağ geçidini ayarlayın. Bu adımlar için bkz . IoT Edge cihazını saydam ağ geçidi işlevi görecek şekilde yapılandırma.

  2. IoT Hub ile kimlik doğrulaması için aşağı akış cihazı için bir cihaz kimliği oluşturun. Aşağı akış cihazını ağ geçidi cihazı üzerinden ileti gönderecek şekilde yapılandırın. Bu adımlar için bkz . Azure IoT Hub'da aşağı akış cihazının kimliğini doğrulama.

  3. Aşağı akış cihazını ağ geçidi cihazına Bağlan ve ileti göndermeye başlayın.

Bu makale, aşağıdakiler gibi aşağı akış cihaz bağlantısı bileşenlerini anlamanıza yardımcı olur:

  • Aktarım katmanı güvenliği (TLS) ve sertifika temelleri.
  • Sertifikaları farklı şekilde işleyen farklı işletim sistemlerinde çalışan TLS kitaplıkları.

Ardından, cihazınızın ağ geçidine ileti göndermesini sağlamak için tercih ettiğiniz dilde Azure IoT örneklerini inceleyebilirsiniz.

Önkoşullar

Aşağı akış cihazınızı hazırlamak için aşağıdakileri alın:

  • Aşağı akış cihazı.

    Bu cihaz, Azure IoT Hub bulut hizmetiyle oluşturulmuş bir kimliği olan herhangi bir uygulama veya platform olabilir. Çoğu durumda bu uygulamalar Azure IoT cihaz SDK'sını kullanır. Aşağı akış cihazı, IoT Edge ağ geçidi cihazının kendisinde çalışan bir uygulama da olabilir.

    Daha sonra, bu makalede ioT cihazını aşağı akış cihazı olarak bağlama adımları sağlanır. IoT Edge cihazını aşağı akış cihazı olarak kullanmayı tercih ediyorsanız bkz. Hiyerarşi (iç içe uç) oluşturmak için Azure IoT Edge cihazlarını birlikte Bağlan.

  • Kök CA sertifika dosyası.

    Bu dosya, IoT Edge cihazını aşağı akış cihazınızda kullanılabilen saydam bir ağ geçidi gibi davranacak şekilde yapılandırma bölümünde cihaz CA sertifikası oluşturmak için kullanılmıştır.

    Aşağı akış cihazınız, ağ geçidi cihazının kimliğini doğrulamak için bu sertifikayı kullanır. Bu güvenilen sertifika, ağ geçidi cihazına aktarım katmanı güvenliği (TLS) bağlantılarını doğrular. Kök CA sertifikası sağlama bölümünde kullanım ayrıntılarına bakın.

  • Ağ geçidi cihazına işaret eden değiştirilmiş bir bağlantı dizesi.

    bağlantı dizesi nasıl değiştireceğiniz, Aşağı akış cihazının Azure IoT Hub'a kimliğini doğrulama bölümünde açıklanmıştır.

Not

IoT Hub'a kayıtlı IoT cihazları modül ikizlerini kullanarak tek bir cihazdaki farklı işlemleri, donanımı veya işlevleri yalıtabilir. IoT Edge ağ geçitleri, simetrik anahtar kimlik doğrulaması kullanan ancak X.509 sertifika kimlik doğrulaması kullanmayan aşağı akış modülü bağlantılarını destekler.

TLS ve sertifika temellerini anlama

Aşağı akış cihazlarını IoT Edge'e güvenli bir şekilde bağlamanın zorluğu, İnternet üzerinden gerçekleşen diğer güvenli istemci/sunucu iletişimleri gibidir. İstemci ve sunucu, Aktarım katmanı güvenliğini (TLS) kullanarak İnternet üzerinden güvenli bir şekilde iletişim kurar. TLS, sertifika olarak adlandırılan standart Ortak anahtar altyapısı (PKI) yapıları kullanılarak oluşturulur. TLS oldukça ilgili bir belirtimdir ve iki uç noktanın güvenliğini sağlamayla ilgili çok çeşitli konuları ele alır. Bu bölümde, cihazları bir IoT Edge ağ geçidine güvenli bir şekilde bağlamak için size uygun kavramlar özetlenmektedir.

İstemci bir sunucuya bağlandığında, sunucu, sunucu sertifika zinciri olarak adlandırılan bir sertifika zinciri sunar. Sertifika zinciri genellikle bir kök sertifika yetkilisi (CA) sertifikasını, bir veya daha fazla ara CA sertifikasını ve son olarak da sunucunun sertifikasını içerir. İstemci, sunucu sertifika zincirinin tamamını şifreleme yoluyla doğrulayarak sunucuyla güven oluşturur. Sunucu sertifika zincirinin bu istemci doğrulamasına sunucu zinciri doğrulaması adı verilir. İstemci, sunucu sertifikasıyla ilişkili özel anahtarın sahiplik kanıtı olarak adlandırılan bir işlemde sahip olduğunu kanıtlaması için sunucuya meydan okur. Sunucu zinciri doğrulama ve sahip olma kanıtı birleşimine sunucu kimlik doğrulaması adı verilir. Bir sunucu sertifika zincirini doğrulamak için istemcinin, sunucunun sertifikasını oluşturmak (veya vermek) için kullanılan kök CA sertifikasının bir kopyasına ihtiyacı vardır. Normalde web sitelerine bağlanırken, tarayıcı yaygın olarak kullanılan CA sertifikalarıyla önceden yapılandırılmış olarak gelir, böylece istemcinin sorunsuz bir işlemi olur.

Bir cihaz Azure IoT Hub'a bağlandığında, cihaz istemcidir ve IoT Hub bulut hizmeti sunucudur. IoT Hub bulut hizmeti, genel kullanıma açık ve yaygın olarak kullanılan Baltimore CyberTrust Root adlı kök CA sertifikasıyla desteklenir. IoT Hub CA sertifikası çoğu cihazda zaten yüklü olduğundan, birçok TLS uygulaması (OpenSSL, Schannel, LibreSSL) sunucu sertifikası doğrulaması sırasında bunu otomatik olarak kullanır. Ancak IoT Hub'a başarıyla bağlanan bir cihazda IoT Edge ağ geçidine bağlanmaya çalışırken sorunlarla karşılaşabilirsiniz.

Bir cihaz ioT Edge ağ geçidine bağlandığında aşağı akış cihazı istemci, ağ geçidi cihazı ise sunucudur. Azure IoT Edge, uygun gördükleri şekilde ağ geçidi sertifika zincirleri oluşturmanıza olanak tanır. Baltimore gibi bir genel CA sertifikası kullanmayı veya otomatik olarak imzalanan (veya şirket içi) bir kök CA sertifikası kullanmayı seçebilirsiniz. Genel CA sertifikalarının genellikle bunlarla ilişkili bir maliyeti vardır, bu nedenle genellikle üretim senaryolarında kullanılır. Geliştirme ve test için otomatik olarak imzalanan CA sertifikaları tercih edilir. Tanıtım sertifikaları otomatik olarak imzalanan kök CA sertifikalarıdır.

IoT Edge ağ geçidi için otomatik olarak imzalanan bir kök CA sertifikası kullandığınızda, ağ geçidine bağlanmaya çalışan tüm aşağı akış cihazlarına yüklenmesi veya sağlanması gerekir.

Ağ geçidi sertifika kurulumunun ekran görüntüsü.

IoT Edge sertifikaları ve bazı üretim etkileri hakkında daha fazla bilgi edinmek için bkz . IoT Edge sertifikası kullanım ayrıntıları.

Kök CA sertifikasını sağlayın

Ağ geçidi cihazının sertifikalarını doğrulamak için aşağı akış cihazının kök CA sertifikasının kendi kopyası gerekir. Test sertifikaları oluşturmak için IoT Edge git deposunda sağlanan betikleri kullandıysanız, kök CA sertifikasına azure-iot-test-only.root.ca.cert.pem adı verilir.

Henüz yapmadıysanız, bu sertifika dosyasını aşağı akış cihazınızdaki herhangi bir dizine taşıyın. CA sertifikasını işletim sisteminin sertifika deposuna yükleyerek veya (belirli diller için) Azure IoT SDK'larını kullanarak uygulamalar içindeki sertifikaya başvurarak dosyayı taşıyabilirsiniz.

Sertifika dosyasını taşımak için Azure Key Vault gibi bir hizmeti veya Güvenli kopyalama protokolü gibi bir işlevi kullanabilirsiniz.

İşletim sistemine sertifika yükleme

Kök CA sertifikası aşağı akış cihazına eklendikten sonra ağ geçidine bağlanan uygulamaların sertifikaya erişebildiğinden emin olun.

Kök CA sertifikasını işletim sisteminin sertifika deposuna yüklemek genellikle çoğu uygulamanın kök CA sertifikasını kullanmasına izin verir. İşletim sistemi sertifika depolarını kullanmayan ancak Node çalışma zamanının iç sertifika depounu kullanan NodeJS uygulamaları gibi bazı özel durumlar vardır. Sertifikayı işletim sistemi düzeyinde yükleyemiyorsanız Azure IoT SDK'larıyla sertifikaları kullanma bölümüne atlayın.

Kök CA sertifikasını Ubuntu veya Windows'a yükleyin.

Aşağıdaki komutlar, Ubuntu konağına CA sertifikası yükleme işleminin bir örneğidir. Bu örnekte, önkoşul makalelerindeki azure-iot-test-only.root.ca.cert.pem sertifikasını kullandığınız ve sertifikayı aşağı akış cihazındaki bir konuma kopyaladığınız varsayılır.

sudo cp <file path>/azure-iot-test-only.root.ca.cert.pem /usr/local/share/ca-certificates/azure-iot-test-only.root.ca.cert.pem.crt
sudo update-ca-certificates

"/etc/ssl/certs içindeki sertifikalar güncelleştiriliyor... 1 eklendi, 0 kaldırıldı; bitti."

Azure IoT SDK'larıyla sertifikaları kullanma

Azure IoT SDK'ları basit örnek uygulamaları kullanarak bir IoT Edge cihazına bağlanır. Örneklerin amacı, cihaz istemcisini bağlamak ve ağ geçidine telemetri iletileri göndermek, ardından bağlantıyı kapatıp çıkmaktır.

Uygulama düzeyi örneklerini kullanmadan önce aşağıdaki öğeleri alın:

  • Aşağı akış cihazınızdan IoT Hub'ınız bağlantı dizesi, ağ geçidi cihazını işaret etmek için değiştirildi.

  • IoT Hub'da aşağı akış cihazınızın kimliğini doğrulamak için gereken tüm sertifikalar. Daha fazla bilgi için bkz . Azure IoT Hub'da aşağı akış cihazının kimliğini doğrulama.

  • Aşağı akış cihazınızda bir yere kopyalayıp kaydettiğiniz kök CA sertifikasının tam yolu.

    Örneğin: <file path>/azure-iot-test-only.root.ca.cert.pem.

Artık sertifikaları istediğiniz dilde bir örnekle kullanmaya hazırsınız:

Bu bölümde, Azure IoT NodeJS cihaz istemcisini IoT Edge ağ geçidine bağlamak için örnek bir uygulama sağlanır. NodeJS uygulamaları için, kök CA sertifikasını burada gösterildiği gibi uygulama düzeyinde yüklemeniz gerekir. NodeJS uygulamaları sistemin sertifika depounu kullanmaz.

  1. Node.js örnekleri deposu için Azure IoT cihaz SDK'sından edge_downstream_device.js örneğini alın.
  2. readme.md dosyasını gözden geçirerek örneği çalıştırmak için tüm önkoşullara sahip olduğunuzdan emin olun.
  3. edge_downstream_device.js dosyasında connectionString ve edge_ca_cert_path değişkenlerini güncelleştirin.
  4. Örneği cihazınızda çalıştırma yönergeleri için SDK belgelerine bakın.

Çalıştırdığınız örneği anlamak için, aşağıdaki kod parçacığı istemci SDK'sının sertifika dosyasını nasıl okuduğu ve güvenli bir TLS bağlantısı kurmak için nasıl kullandığıdır:

// Provide the Azure IoT device client via setOptions with the X509
// Edge root CA certificate that was used to setup the Edge runtime
var options = {
    ca : fs.readFileSync(edge_ca_cert_path, 'utf-8'),
};

Ağ geçidi bağlantısını test edin

Ağ geçidi cihazına bağlanıp bağlanamadığını test etmek için aşağı akış cihazında şu örnek komutu kullanın:

openssl s_client -connect mygateway.contoso.com:8883 -CAfile <CERTDIR>/certs/azure-iot-test-only.root.ca.cert.pem -showcerts

Bu komut, MQTTS (bağlantı noktası 8883) üzerinden bağlantıyı test eder. Farklı bir protokol kullanıyorsanız, komutu AMQPS (5671) veya HTTPS (443) için gerektiği gibi ayarlayın.

Bu komutun çıkışı, zincirdeki tüm sertifikalarla ilgili bilgiler de dahil olmak üzere uzun olabilir. Bağlantınız başarılı olursa veya Verify return code: 0 (ok)gibi Verification: OK bir satır görürsünüz.

Ağ geçidi bağlantısını doğrulama ekran görüntüsü.

Ağ geçidi bağlantısı sorunlarını giderme

Ağ geçidi cihazına yönelik aşağı akış cihaz bağlantınız kararsızsa, çözüm için bu soruları göz önünde bulundurun.

  • bağlantı dizesi ağ geçidi ana bilgisayar adı, ağ geçidi cihazındaki IoT Edge yapılandırma dosyasındaki ana bilgisayar adı değeriyle aynı mı?
  • Ağ geçidi ana bilgisayar adı bir IP Adresi ile çözülebilir mi? Aralıklı bağlantıları DNS kullanarak veya aşağı akış cihazına bir konak dosyası girişi ekleyerek çözebilirsiniz.
  • güvenlik duvarınızda iletişim bağlantı noktaları açık mı? Kullanılan protokole dayalı iletişim (MQTTS:8883/AMQPS:5671/HTTPS:433) aşağı akış cihazı ile saydam IoT Edge arasında mümkün olmalıdır.

Sonraki adımlar

IoT Edge'in çevrimdışı özellikleri aşağı akış cihazlarına nasıl genişletebileceğini öğrenin.