Porovnávané verzie

Kľúč

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

...

Blok kódu
languagejs
{
    /* objekt s konfiguráciou reverznej konekcie kvôli DMZ prepojený cez utilitu socat ( EDA Server <- socat -> SmartWeb) */   
	"edaConnection": { 
	    "connectionMode": "REVERSE",
		"connections": [
      		{
        		"host": "172.16.1.179", // binding interface, na ktorom sa otvorí port 3130 pre reverzné spojenie
		        "port": 3130,
        		"watchdogFrequencySeconds": 30,
				"certificatePath": "D:\\server.p12crt", // nepovinna cesta k verejnej časti SSL certifikátu pre prípad šifrovaného pripojenia 
s        		"certificatePassword": "abc123"  // heslo k SSL certifikátu EDA serverom
      		}			
    	]   
	}    }

EDA Server nevie priamo nadviazať reverzné spojenie na port vystavený SmartWeb aplikaciou (JEDA knižnicou). Kvôli tomuto dôvodu sa využíva Linuxová utilita socat ktorá vie komunikačne prepojiť dva sockety  (EDA Servera a JEDA) nasledujúcou konfiguráciou:. S nasledujúcou konfiguráciou cez linuxovú daemon službu (systemctl) je možné mať utilitu socat vždy spustenú, pretože utilita socat ukončí svoju činnosť akonáhle sa jeden z portov uzavrie.

Blok kódu
languagebash
title/etc/systemd/system/socat.service
ExecStart=/usr#!/bin/bash
while sleep 1; do
	socat -d -d TCP:edaserver.comlocalhost:3121,forever,keepalive TCP:172smartweb.16server.1.179sk:31303300,forever
done

Utilita socat ukončí svoju činnosť akonahle sa jeden z portov uzavrie. Ideálne je preto jej spustenie riešit v linuxovej deamon službe s autoštartom, v tomto prípade je možné slučku while-do-done v uvedenom skripte vypustiť.

,keepalive
Restart=always
RestartSec=2

Šifrované reverzné spojenie

Pre šifrovanú komunikaciu medzi socat utilitou Eda serverom a SmartWeb serverom je potrebné vygenerovať nový SSL certifikát použiť verejnú časť SSL certifikátu vygenerovaného pre D2000 server a nakofigurovať ho ako pre sockat tak pre v smartweb.json konfiguráciu.

Na vygenerovanie selfsigned SSL certifikátu je ideálne použiť utilitu keytool nasledovne (nezabudnúť zadať správnu IP adresu Smart Web servera na konci príkazu).

Blok kódu
languagebash
keytool -genkeypair -alias server -keyalg EC -sigalg SHA384withECDSA -keysize 256 -keystore server.p12 -storetype pkcs12 -v -storepass abc123 -validity 10000 -ext san=ip:172.16.1.179

Prikaz si vypýta základne parametre SSL certifikátu, pre CN meno treba tiež zadať IP adresu Smart Web servera. Po vygenerovaní SSL kľuča a verejnej časti do súboru server.p12 je potrebné ešte nasledujúcim príkazom vytvoriť súbor iba s verejnou časťou SSL certifikátu server.crt.

Blok kódu
languagebash
openssl pkcs12 -in server.p12 -nokeys -passin pass:abc123 | openssl x509 -out server.crt

Konfigurácia spustenia socat utility bude potom nasledovná (vyžaduje si súbor s verejnou časťou certifikátu server.crt):

Blok kódu
languagebash
#!/bin/bash
while sleep 1; do  
	socat -d -d TCP:edaserver.com:3121,forever openssl-connect:172.16.1.179:3130,openssl-commonname=172.16.1.179,cafile=/home/server.crt,forever 
done

konfigurácii.

Na Na strane Smart Webu treba správne vyplniť atribúty certificatePath a certificatePassword v smartweb.json (formát konfigurácie je popísaný vyššie).