...
Blok kódu |
---|
|
{
/* 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 |
---|
language | bash |
---|
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 |
---|
|
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 |
---|
|
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 |
---|
|
#!/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).