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 TCP:172smartweb.16server.1.179:3130sk:3300,,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ť.

Restart=always

Š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 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

v smartweb.json konfigurácii.

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).