İçeriğe geç
Proxus 2.0.0 Proxus 2.0: Proxus tarihinin en büyük sürümü Sürüm notları

Nasıl yapılır · Mühendisler, Sistem yöneticileri için

Veri hedeflerine güvenli bağlantı

AWS IoT Core, MQTT, Sparkplug B, Kafka, RabbitMQ, Redis, ClickHouse, HTTP ve SQL hedefleri için Sertifika deposundaki sertifikalarla TLS kurulumu.

Bu kılavuzu tamamladığınızda veri hedefi verisini TLS ile gönderir: bağlandığı sunucuyu doğrular ve sunucu isterse bir istemci sertifikasıyla kendini tanıtır. Bu ayarı her hedef için bir kez yaparsınız. Sertifikalar Sertifika deposunda durur; orada bir sertifikayı yenilediğinizde hedefte bir şey değiştirmeniz gerekmez.

Başlamadan önce

  • Hedef oluşturulmuş olmalı. Nasıl oluşturulduğunu Veri hedefleri sayfası anlatır.
  • Güvenlik > Sertifika deposu ekranını açabiliyor olmalısınız.
  • Sunucunun yöneticisinin ya da bulut hizmetinin verdiği dosyalar elinizde olmalı: genellikle bir CA sertifikası, istemci sertifikası gerekiyorsa da sertifika ve özel anahtarı. Dosyalar PEM biçiminde (.pem, .crt, .key) ya da .pfx olabilir.

Bir hedefin iki sertifikası

AlanNedirNe zaman gerekir
Güvenilen sunucu sertifikasıSunucunun sertifikasını imzalayan CA. Hedef, sunucuyu ancak sertifikası bu CA'ya bağlanıyorsa ve girdiğiniz adresle eşleşiyorsa kabul eder.Sunucunun sertifikası kendi CA'nızdan ya da özel bir CA'dan geliyorsa. Sertifikası herkese açık bir CA'dan gelen sunucularda boş bırakın; o zaman işletim sisteminin güvendiği kök sertifikalar kullanılır.
İstemci sertifikasıHedefin sunucuya gösterdiği sertifika ve özel anahtarı.Sunucu istemci sertifikası istiyorsa (karşılıklı TLS). Örneğin AWS IoT Core.

Sertifikaları iki yoldan yerleştirebilirsiniz:

  1. Hedefin sayfasında: Sertifikalar düğmesini seçin ve istemci sertifikasını, özel anahtarını ve varsa CA sertifikasını birlikte seçin. Proxus hangi dosyanın ne olduğunu kendisi bulur: özel anahtarla eşleşen sertifika istemci sertifikası olur, dosyalar arasındaki diğer sertifika da güvenilen sunucu sertifikası olur. İkisi de Sertifika deposuna kaydedilir ve hedef onlara bağlanır.
  2. Sertifika deposunda: Yükle düğmesini seçin ve dosyaları seçin. Anahtarı olmayan bir sertifika (bir CA) ortak sertifika olarak kaydedilir. Ardından sertifikaları hedefte seçin:
    • MQTT, AWS IoT Core ve SparkplugB için Parametreleri düzenle düğmesini seçin ve sertifikaları İstemci sertifikası ile Güvenilen sunucu sertifikası alanlarından seçin.
    • Diğer türlerde hedefe ServerCertificateThumbprint parametresini (istemci sertifikası için ayrıca CertificateThumbprint) ekleyin. Değer, sertifikanın Parmak izidir: kopyalamak için sertifikayı depoda açın.

Her değişiklikten sonra hedefi açın, Denetle düğmesini seçin, Sınamanın çalışacağı yer alanında veriyi gönderecek Edge Gateway'i seçin ve Bağlantıyı test et düğmesini seçin. Bu test gerçek gönderimlerle aynı sertifikaları ve aynı denetimleri kullanır.

AWS IoT Core

AWS IoT Core her zaman 8883 portunda karşılıklı TLS kullanır: hedefe nesnenin (thing) cihaz sertifikası ve anahtarı gerekir.

AWS konsolunda

  1. AWS IoT Core > Manage > All devices > Things sayfasını açın ve Create things düğmesini seçin. Tek bir nesne oluşturun, örneğin proxus-line-1.

  2. Sertifika adımında Auto-generate a new certificate seçeneğini seçin.

  3. Nesneye bağlanma ve yayın yapma izni veren bir politika (policy) ekleyin. İstemci kimliği nesne adıyla aynı olan ve proxus_device_data konusuna yayın yapan en küçük politika:

    {
      "Version": "2012-10-17",
      "Statement": [
        { "Effect": "Allow", "Action": "iot:Connect",
          "Resource": "arn:aws:iot:<bölge>:<hesap>:client/proxus-line-1" },
        { "Effect": "Allow", "Action": "iot:Publish",
          "Resource": "arn:aws:iot:<bölge>:<hesap>:topic/proxus_device_data" }
      ]
    }
  4. AWS'nin sunduğu üç dosyayı indirin: cihaz sertifikası (…-certificate.pem.crt), özel anahtar (…-private.pem.key) ve Amazon Root CA 1 (AmazonRootCA1.pem). Özel anahtar yalnızca bu sayfada indirilebilir.

  5. Settings sayfasını açın ve Device data endpoint adresini kopyalayın, örneğin a1b2c3d4e5-ats.iot.eu-central-1.amazonaws.com.

Proxus'ta

  1. AWS IoT Core hedefini açın (yoksa AWS IoT Core örneğini kopyalayın) ve bir kez kaydedin.

  2. Sertifikalar düğmesini seçin ve üç dosyayı birlikte seçin. Cihaz sertifikası anahtarıyla birlikte kaydedilir ve İstemci sertifikası olur; Amazon Root CA 1 de Güvenilen sunucu sertifikası olur. Yalnızca sertifikayı ve anahtarı seçerseniz Proxus Amazon Root CA 1'i kendisi indirir. Merkez sunucunun internet erişimi yoksa AWS'yi işletim sisteminin güvendiği kök sertifikalar doğrular.

  3. Parametreleri düzenle düğmesini seçin ve şunları girin:

    • Uç nokta: 5. adımdaki device data endpoint adresi.
    • İstemci ID: politikanın izin verdiği istemci kimliği, burada proxus-line-1.
    • Port 8883 ve TLS kullan açık (ikisi de varsayılan değerdir).
    • Konu (topic): politikanın izin verdiği bir konu.

    İstemci sertifikası ve Güvenilen sunucu sertifikası zaten doludur.

  4. Kaydedin, Denetle düğmesini seçin, Sınamanın çalışacağı yer alanında gönderen Edge Gateway'i seçin ve Bağlantıyı test et düğmesini seçin.

MQTT sunucuları (Mosquitto, EMQX, HiveMQ ve diğerleri)

  1. Sunucunun TLS portunu (genellikle 8883) ve sertifikasını kimin imzaladığını öğrenin.
  2. Sunucunun sertifikası kendi CA'nızdan geliyorsa CA sertifikasını Sertifika deposuna yükleyin. Herkese açık bir CA'dan geliyorsa bu adımı atlayın.
  3. Sunucu istemci sertifikası istiyorsa (Mosquitto'da require_certificate true), sunucu yöneticisinden bir istemci sertifikası ve anahtarı alın ve hedefte Sertifikalar düğmesiyle yükleyin.
  4. Hedefte Parametreleri düzenle düğmesini seçin:
    • MQTT sunucusu adresi: sunucu sertifikasındaki ad. IP adresi yalnızca sertifikada geçiyorsa çalışır.
    • MQTT sunucusu portu 8883, TLS kullan açık, TLS sürümü Tls12 (sunucu destekliyorsa Tls13).
    • Güvenilen sunucu sertifikası: 2. adımdaki CA; herkese açık bir CA için boş.
    • İstemci sertifikası: 3. adımdaki sertifika ya da boş.
  5. Kaydedin ve Bağlantıyı test et ile sınayın.

Başka bir Proxus Edge Gateway'inin MQTT sunucusuna veri göndermek için güvenilen sunucu sertifikası olarak Proxus Platform CA'yı seçin: her Edge Gateway'in MQTT sunucusu sertifikasını o verir.

SparkplugB hedeflerinde aynı alanlar bulunur ve aynı şekilde çalışır.

Kafka

Hedefe şu parametreleri ekleyin:

ParametreDeğer
BootstrapServersSunucuların TLS dinleyicileri, örneğin kafka1:9093,kafka2:9093.
SecurityProtocolTLS için Ssl, kullanıcı adı ve parolayla TLS için SaslSsl (SaslMechanism, SaslUsername, SaslPassword ile).
ServerCertificateThumbprintKümenin CA'sının Sertifika deposundaki parmak izi. Herkese açık bir CA için eklemeyin.
CertificateThumbprintKüme istemci sertifikası istiyorsa istemci sertifikasının parmak izi.

Sunucunun adı sertifikasıyla karşılaştırılır.

RabbitMQ

ParametreDeğer
UseTlstrue
Port5671 (UseTls true olduğunda varsayılan).
ServerCertificateThumbprintÖzel bir CA kullanılıyorsa sunucunun CA'sı.
CertificateThumbprintRabbitMQ istemci sertifikası istiyorsa (ssl_options.fail_if_no_peer_cert) istemci sertifikası.

Redis

ParametreDeğer
UseTlstrue
HostSunucu sertifikasındaki ad.
PortSunucunun TLS portu. Birçok sunucu TLS için 6380 kullanır; varsayılan 6379'dur.
ServerCertificateThumbprint, CertificateThumbprintRabbitMQ'daki gibi.

ClickHouse

UseTls değerini true yapın. Hedef bu durumda, Port girmediyseniz 8443 portunda HTTPS kullanır. Özel bir CA için ServerCertificateThumbprint, sunucu istemci sertifikası istiyorsa CertificateThumbprint ekleyin.

REST API, InfluxDB ve Splunk

https:// ile başlayan bir adres TLS kullanır; sunucunun sertifikası bu adresle karşılaştırılır. Sertifikası herkese açık bir CA'dan gelen sunucularda başka bir şey gerekmez. Özel bir CA için ServerCertificateThumbprint, istemci sertifikası için CertificateThumbprint ekleyin.

Splunk'ta HTTP Event Collector adresini https:// ile girin, örneğin https://splunk.example.com:8088. Eski UseSSL parametresinin bir etkisi yoktur.

PostgreSQL ve MySQL

ParametreDeğer
SslModeVerifyFull (önerilen): bağlantıyı şifreler, sunucunun sertifikasını ve adını doğrular. VerifyCA sertifikayı doğrular ama adı doğrulamaz. Prefer (PostgreSQL) ve Preferred (MySQL) şifreler ama sunucuyu doğrulamaz.
ServerCertificateThumbprintVerifyCA ve VerifyFull için veritabanı sunucusunun CA'sı.

SslMode girilmezse veritabanı sürücüsünün varsayılanı geçerli olur: sunucu sunuyorsa şifreler ama sunucuyu doğrulamaz. Bu iki veritabanında istemci sertifikası desteklenmez.

Azure IoT Hub

Bağlantı her zaman 8883 portunda TLS kullanır. Hub, işletim sisteminin güvendiği kök sertifikalarla doğrulanır; cihaz SharedAccessKey ile oturum açar. Sertifika gerekmez. X.509 ile cihaz kimlik doğrulaması bu sürümde desteklenmez.

Sertifika deposunu kullanmayan hedefler

TürTLS
TDengineUseTls TLS'i açar; sunucu işletim sisteminin güvendiği kök sertifikalarla doğrulanır.
SQL ServerEncrypt TLS'i açar. TrustServerCertificate sunucu doğrulamasını atlar: yalnızca denemelerde kullanın.
Azure Data Lake Gen2Her zaman HTTPS; işletim sisteminin güvendiği kök sertifikalarla doğrulanır.

Bağlantı kurulamadığında

GördüğünüzNedenNe yapmalı
Bağlantıyı test et, sertifikanın adresle eşleşmediğini söylüyor.Hedefteki adres, sunucu sertifikasındaki adlardan biri değil.Sertifikanın verildiği adı girin ya da adresinizi içeren bir sertifika isteyin.
Bağlantıyı test et, sertifikaya güvenilmediğini söylüyor.Sunucunun CA'sı güvenilen sunucu sertifikası olarak seçilmemiş ve herkese açık bir CA değil.CA'yı Sertifika deposuna yükleyin ve Güvenilen sunucu sertifikası olarak seçin.
Sertifikalar, özel anahtarın seçilen sertifikaların hiçbirine ait olmadığını söylüyor.Anahtar ile sertifika farklı çiftlerden.Bu anahtarla verilen sertifikayı seçin.
AWS IoT Core bağlanıp hemen kopuyor.Politika istemci kimliğine ya da konuya izin vermiyor veya sertifika etkin değil.AWS IoT Core bölümündeki nota bakın.
Test merkez sunucudan çalışıyor ama Edge Gateway'den çalışmıyor.Edge Gateway'in ağı sunucuya ulaşamıyor ya da başka bir adla ulaşıyor.Testi veriyi gönderen Edge Gateway'den çalıştırın; güvenlik duvarını ve DNS'i kontrol edin.

Sonraki adımlar

Bu sayfa işinize yaradı mı?

Proxus'u değerlendiriyor musunuz? 30 dakikalık teknik görüşmede kendi makinelerinizle görün.