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