Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

  • Sú dva redundantné aplikačné servery (fyzické alebo virtualizované) - Windows alebo Linux.
  • Na oboch serveroch sú spustené D2000 Servery ako redundantná aplikácia (Master/Standby).
  • Na oboch serveroch sú spustené MQTT brokery Eclipse Mosquitto, nakonfigurované v režime TLS s certifikátom podpísaným certifikačnou autoritou. Sú spustené bez konfigurácie výmeny správ medzi sebou, t.j. každý z nich je úplne nezávislý.
  • D2000 Kom proces s nakonfigurovanou linkou má nakonfigurovanú linku TCP/IP-TCP Redundant, s nakonfigurovaným overovaním certifikátu MQTT servera a s nakonfigurovanými certifikátmi. D2000 KOM je teda pripojený k obidvom MQTT serverom súčasne.
  • Ostatní klient MQTT klienti (PLC a iné zariadenia) sú pripojení aspoň k jednému z MQTT serverov (t.j. umožňujú nakonfigurovať 2 IP adresy MQTT serverov, voči ktorým sa snažia striedavo nadviazať spojenie).
  • Na overovanie totožnosti všetkých klientov sa používajú TLS certifikáty podpísaným certifikačnou autoritou.

...

Príklad ukazuje konfiguráciu na Windows, cesty na OS Linux je nutné upraviť (samotný konfiguračný súbor sa môže nachádzať napr. v /etc/mosquitto/mosquitto.conf).

Info
titlemosquitto.conf
#MQTTS listener on port 8883
listener 8883
#broker certificate
certfile c:\Program Files (x86)\mosquitto\broker.crt
#broker private key
keyfile c:\Program Files (x86)\mosquitto\broker.key
#require valid certificates of clients
require_certificate true
#file with certificate authority's public key(s)
cafile c:\Program Files (x86)\mosquitto\caMQTT.crt
#use CN (Common Name) of client certificate as username (and ignore MQTT username+password)
use_identity_as_username true
#password file is not used for username/password verification (due to use_identity_as_username true)
#password_file pwfile
#acl file with defined access rights
acl_file c:\Program Files (x86)\mosquitto\myacl.conf

Poznámka: Je možné overovať MQTT klientov aj na základe mena a hesla. V tom prípade musí byť vypnuté použitie identity a zadefinovaný súbor s heslami:

...

V súbore pwfile je nutné zadefinovať mená a heslá užívateľov pomocou utility mosquitto_passwd. Pri prvom použití je nutné použiť prepínač -c  na vytvorenie súboru, pri ďalších to už nie je potrebné. Parameter -b aktivuje dávkový režim, ktorý umožňuje zadávanie hesiel z príkazového riadku:
mosquitto_passwd.exe -b -c pwfile myuser1 mypassword1
mosquitto_passwd.exe -b pwfile myuser2 mypassword2

PozorUpozornenie: Ak sa overujú MQTT klienti na základe mena a hesla a zároveň sú vyžadované certifikáty, nikde nie je definovaná väzba medzi užívateľom a certifikátom.  Takže ak by užívateľ niekto získal certifikát (a súkromný kľúč) iného užívateľa, mohol by ho použiť na pripojenie k MQTT brokeru.

...

  • MQTT klient s certifikátom obsahujúcim Common Name=myPLC, zverejňujúci dáta s topicom PLC1/out a prijímajúci príkazy s topicom PLC1/cmd
  • MQTT klient s klient s certifikátom obsahujúcim Common Name=myD2000, čítajúci dáta s topicom PLC1/out a posielajúci príkazy s topicom PLC1/cmd

...

Vytvorenie požiadavky na podpísanie (csr - certificate signing request). Je nutné zadať viacero parametrov, hodnoty udávané v príklade je nutné upraviť. Odporúčané je, aby CN (Canonic Common Name) zodpovedalo názvu počítača s MQTT brokerom.

...

Vytvorenie požiadavky na podpísanie (csr - certificate signing request). Je nutné zadať viacero parametrov, hodnoty udávané v príklade je nutné upraviť. Nutné je zadať také CN (Canonic Common Name), ktoré zodpovedá názvu MQTT užívateľa:

openssl req -out myPLC.csr -key myPLC.key -new

       Country Name (2 letter code) [AU]:SK
        State or Province Name (full name) [Some-State]:Slovakia
        Locality Name (eg, city) []:Žilina
        Organization Name (eg, company) [Internet Widgits Pty Ltd]:Ipesoft
        Organizational Unit Name (eg, section) []:D2000
        Common Name (e.g. server FQDN or YOUR name) []:myPLC
        Email Address []:ipesoft@ipesoft.sk
        
        Please enter the following 'extra' attributes
        to be sent with your certificate request
        A challenge password []:
        An optional company name []:       

...

Súbor myPLC.crt (certifikát MQTT klienta) je spolu so súborom myPLC.key (súkromný kľúč MQTT klienta) a s certifikátom certifikačnej autority (caMQTT.crt) potrebné nakopírovať na MQTT klienta. Súbor myPLC.key je navyše odporúčané chrániť (prístupovými právami, kryptovaním) tak, aby k nemu mal prístup iba užívateľ, pod ktorým beží MQTT klient. Súbor myPLC.crt je nutné nakopírovať aj na MQTT broker; pomocou neho bude overovaná totožnosť MQTT klienta.


4 Zopakovanie postupu pre D2000 MQTT klienta

Rovnako, ako bol vytvorený a podpísaný kľúč pre MQTT klienta myPLC, je nutné vytvoriť a podpísať kľúč pre MQTT klienta myD2000. Jeho verejný certifikát (myD2000.crt) je opäť nutné nakopírovať do adresára MQTT brokera. Verejný certifikát (myD2000.crt) aj súkromný kľúč (myD2000.key) je nutné nakopírovať tak, aby k ním mal prístup D2000 KOM (najjednoduchšie do aplikačného adresára) a nastaviť cestu k ním ako parametre "Môj certifikát" (#APPDIR#\myD2000.crt) a "Môj kľúč" (#APPDIR#\myD2000.key) v konfigurácii linky TCP/IP-TCP Redundant.

...