De HTML5 Gateway Docker installeren¶
Het Docker-image importeren¶
Voordat u een HTML5 Gateway Docker-container kunt aanmaken, moet u het Docker-image importeren. Open daarvoor een shell waarin de Docker-opdrachten en het bestand cleanroom-html5-4.6.1-33-v2.tgz voor u beschikbaar zijn. Voer vanuit de shell de volgende opdracht uit en pas het pad naar het TGZ-bestand aan als het zich niet in de huidige map bevindt:
1 | |
Controleer daarna met de volgende opdracht of de import is gelukt:
1 | |
De verwachte uitvoer is de volgende. Is dat niet het geval, dan is de import mislukt:
1 2 3 4 5 6 | |
Volledige uitvoer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | |
Configuratie van de container¶
Omgevingsvariabelen¶
Variabelen voor de implementatie via pairing¶
| Naam | Verplicht | Standaardwaarde | Opmerking |
|---|---|---|---|
ENV_MEDIATION |
JA | Wordt gebruikt voor de verbinding via pairing. Geeft de DNS-naam of het IP-adres aan voor de verbinding met de webinterface van een CyberElements Bastion-platform. |
|
ENV_TOKEN |
JA | Wordt gebruikt voor de verbinding via pairing. Geeft het pairing-token aan dat voor de verbinding met de Mediation Controller moet worden gebruikt. |
|
ENV_NO_CHECK_CERT |
NEE | false |
Wordt gebruikt voor de verbindingen via pairing. Schakelt de controle van het webcertificaat van de Mediation Controller al dan niet uit; nuttig bij CyberElements Bastion wanneer de toegang via een IP-adres verloopt of wanneer het webcertificaat geen certificaat is dat door de standaard openbare certificeringsinstanties wordt erkend. Toegestane waarden: true of false. |
Variabelen voor de handmatige implementatie¶
| Naam | Verplicht | Standaardwaarde | Opmerking |
|---|---|---|---|
ENV_GW_CERT_NAME |
JA | Wordt gebruikt voor de verbinding met handmatige configuratie. Naam van het certificaatbestand voor de verbinding met de SSL Router. |
|
ENV_GW_CERT_PASSWORD |
JA | Wordt gebruikt voor de verbinding met handmatige configuratie. Wachtwoord van het certificaatbestand voor de verbinding met de SSL Router. |
|
ENV_SSL_ROUTER_IP |
JA | Wordt gebruikt voor de verbinding met handmatige configuratie. IP-adres of DNS-naam van de SSL Router waarmee de HTML5 Gateway verbinding maakt. |
|
ENV_SSL_ROUTER_PORT |
NEE | 443 |
Wordt gebruikt voor de verbinding met handmatige configuratie. Poort van de SSL Router waarmee de HTML5 Gateway verbinding maakt. |
Diverse variabelen¶
| Naam | Verplicht | Standaardwaarde | Opmerking |
|---|---|---|---|
ENV_DISABLE_RSYSLOG |
NEE | false |
Uitschakeling van de service rsyslog.Toegestane waarden: true of false. |
Volumes¶
| Volume | Opmerking |
|---|---|
/etc/ipdiva/ |
Configuratievolume van de HTML5 Gateway. Wij raden aan het te mounten op een benoemd volume of op het bestandssysteem van de hostmachine. |
/opt/certificates/ |
Volume dat het certificaat of de certificaten van de HTML5 Gateway bevat bij een configuratie zonder pairing. |
/var/log/ |
Volume dat de logs van de HTML5 Gateway bevat. |
Poorten¶
| Poort | Opmerking |
|---|---|
8080 |
Luisterpoort van de HTML5-service. |
Implementatie van de HTML5 Gateway Docker¶
Implementatie met pairing¶
Voorwaarden
Voordat u de HTML5 Gateway Docker implementeert, moet u een pairing-token verkrijgen.
De hieronder beschreven implementatie gebruikt alle beschikbare volumes (behalve /opt/certificates/, dat in deze context niet nuttig is) en stelt alle poorten beschikbaar.
De volumes worden gemount in het bestandssysteem van de hostmachine op de locatie HTML5_GATEWAY_REP. Binnen deze locatie bevinden zich de volgende submappen:
- config
- log
U kunt de variabelen van de volgende opdrachten aanpassen:
| Aangepaste waarde | Variabele | Opmerking |
|---|---|---|
DOCKER_NAME |
Naam van de Docker-container. | |
HTML5_GATEWAY_REP |
Locatie in het bestandssysteem waar de volumes worden gemount. | |
ENV_MEDIATION_VALUE |
Waarde van de omgevingsvariabele ENV_MEDIATION. |
|
ENV_TOKEN_VALUE |
Waarde van de omgevingsvariabele ENV_TOKEN. |
|
ENV_NO_CHECK_CERT_VALUE |
Waarde van de omgevingsvariabele ENV_NO_CHECK_CERT. |
Maak de mappenstructuur aan die nodig is om de volumes in het bestandssysteem te mounten:
1 2 | |
En start ten slotte een nieuwe container:
1 2 3 4 5 6 7 8 | |
De logs van de container kunnen met de volgende opdracht worden bekeken:
1 | |
Handmatige implementatie¶
Voorwaarden
Voordat u de HTML5 Gateway Docker implementeert, moet u over het vereiste certificaat voor de HTML5 Gateway beschikken.
De hieronder beschreven implementatie gebruikt alle beschikbare volumes en stelt alle poorten beschikbaar.
De volumes worden gemount in het bestandssysteem van de hostmachine op de locatie MANUAL_REP. Binnen deze locatie bevinden zich de volgende submappen:
- config
- log
- certificates
U kunt de variabelen van de volgende opdrachten aanpassen:
| Aangepaste waarde | Variabele | Opmerking |
|---|---|---|
MANUAL_NAME |
Naam van de Docker-container. | |
MANUAL_REP |
Locatie in het bestandssysteem waar de volumes worden gemount. | |
ENV_GW_CERT_NAME_VALUE |
Waarde van de omgevingsvariabele ENV_GW_CERT_NAME. |
|
ENV_GW_CERT_PASSWORD_VALUE |
Waarde van de omgevingsvariabele ENV_GW_CERT_PASSWORD. |
|
ENV_SSL_ROUTER_IP_VALUE |
Waarde van de omgevingsvariabele ENV_SSL_ROUTER_IP. |
|
ENV_SSL_ROUTER_PORT_VALUE |
Waarde van de omgevingsvariabele ENV_SSL_ROUTER_PORT. |
Maak de mappenstructuur aan die nodig is om de volumes in het bestandssysteem te mounten:
1 2 3 | |
Plaats vervolgens de certificaten van de HTML5 Gateway en van de opnameservice in MANUAL_REP/certificates.
Start ten slotte een nieuwe container:
1 2 3 4 5 6 7 8 9 10 | |
De logs van de container kunnen met de volgende opdracht worden bekeken:
1 | |
Configuratie van de Mediation Controller¶
Om de nieuwe HTML5 Gateway Docker operationeel te maken, moet de Mediation Controller-server nog worden geconfigureerd via een SSH- of consoletoegang met root-machtigingen.
Deze laatste instelling is nodig om de Mediation Controller met de HTML5-service te laten communiceren.
Deze configuratie verschilt echter naargelang de locatie van de HTML5 Gateway Docker:
Het algemene schema is het volgende:
flowchart LR
subgraph DMZ
direction TB
HTML5(HTML5 Gateway Docker)
MED(Mediation Controller)
end
subgraph LAN
GW(Edge Gateway)
end
MED -.-> |Verbinding met de HTML5-dienst ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
MED ~~~ GW
GW --> |TLS Tunnel| MED
GW ~~~ MED
linkStyle 0 stroke:#d22,color;
In dit kader moeten de hieronder vermelde gegevens aan het bestand /etc/ipdiva/httpd/commonParameters.extra.conf worden toegevoegd, of moet dit bestand worden aangemaakt.
De instellingen kunnen worden aangepast:
| Aangepaste waarde | Variabele | Opmerking |
|---|---|---|
HTML5_URL_DMZ |
URL die is geconfigureerd bij het declareren van de HTML5 Gateway in de beheerconsole. | |
HTML5_IP_DMZ |
DNS-naam of IP-adres van de Docker-server waarop de HTML5 Gateway Docker actief is. | |
HTML5_PORT_DMZ |
Poort die door de Docker-server voor de HTML5 Gateway Docker wordt gepubliceerd. |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Het algemene schema is het volgende:
flowchart LR
subgraph DMZ
direction TB
MED(Mediation Controller)
end
subgraph LAN
HTML5(HTML5 Gateway Docker)
GW(Edge Gateway)
end
MED -.- | Verbinding met de HTML5-dienst ; via de TLS-tunnel| GW -.-> |Verbinding met de HTML5-dienst ; TCP 8080| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
In dit kader moeten de hieronder vermelde gegevens aan het bestand /etc/ipdiva/httpd/commonParameters.extra.conf worden toegevoegd, of moet dit bestand worden aangemaakt.
De instellingen kunnen worden aangepast:
| Aangepaste waarde | Variabele | Opmerking |
|---|---|---|
HTML5_URL_LAN |
URL die is geconfigureerd bij het declareren van de HTML5 Gateway in de beheerconsole. | |
GW_NAME_LAN |
Naam van de Edge Gateway die wordt gebruikt om verbinding te maken met de HTML5-service. Het teken van de verticale streep aan het einde van de regel moet behouden blijven. | |
ORGANIZATION_NAME_LAN |
Naam van de organisatie waarmee de Edge Gateway verbinding maakt. | |
HTML5_IP_LAN |
DNS-naam of IP-adres van de Docker-server waarop de HTML5 Gateway Docker actief is. | |
HTML5_PORT_LAN |
Poort die door de Docker-server voor de HTML5 Gateway Docker wordt gepubliceerd. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Tip
Deze configuratie kan ook worden gebruikt in de volgende situatie, waarin een Edge Gateway Docker en een HTML5 Gateway Docker in hetzelfde Docker-netwerk draaien:
flowchart LR
subgraph DMZ
direction TB
MED(Mediation Controller)
end
subgraph LAN
subgraph docker[Docker Server]
HTML5([HTML5 Gateway Docker])
GW([Edge Gateway])
end
end
MED -.- | Verbinding met de HTML5-dienst ; via de TLS-tunnel| GW -.-> |Verbinding met de HTML5-dienst ; TCP 8080 via het Docker-netwerk| HTML5
HTML5 --> |TLS Tunnel| MED
GW --> |TLS Tunnel| MED
linkStyle 0,1 stroke:#d22,color;
Voorbeeld
In dit voorbeeld implementeren wij een Edge Gateway en een HTML5 Gateway op dezelfde Docker-server.
De voor het voorbeeld gebruikte infrastructuur is de volgende:
- Mediation Controller-server
- Web-IP-adres:
10.0.10.10 - Naam van de organisatie:
my-organization-name - Token voor de Edge Gateway:
YJ5N-JN05-N5LS-N26H-7JHA-HZ9R-BGJF-MAVH - Token voor de HTML5 Gateway:
ATCW-OMVR-0RY4-LW1M-D9G9-H5VF-WPX5-YCXF - URL voor de toegang tot de HTML5-service:
HTML5_DOCKER
- Web-IP-adres:
- Docker-server
- Naam van het Docker-netwerk:
cyberelements-cleanroom-network - Edge Gateway
- Naam:
my-edge-gateway-docker - Rootlocatie in het bestandssysteem:
/opt/my-edge-gateway-docker
- Naam:
- HTML5 Gateway
- Naam:
my-html5-gateway-docker - Rootlocatie in het bestandssysteem:
/opt/my-html5-gateway-docker
- Naam:
- Naam van het Docker-netwerk:
Maak eerst op de Docker-server de mapstructuur aan om de Docker-volumes te mounten:
1 2 3 4 5 6 | |
Maak vervolgens een Docker-netwerk van het type bridge aan, zodat de twee containers met elkaar kunnen communiceren:
1 | |
Start daarna de container van de Edge Gateway. Merk op dat in het voorbeeld een verbinding via pairing wordt opgezet, met toegang tot de Mediation Controller via het IP-adres en zonder controle van het certificaat. Bovendien wordt de parameter --network toegevoegd om het gebruik van het eerder aangemaakte Docker-netwerk aan te geven:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Start daarna de container van de HTML5 Gateway. Merk op dat in het voorbeeld een verbinding via pairing wordt opgezet, met toegang tot de Mediation Controller via het IP-adres en zonder controle van het certificaat. Bovendien wordt de parameter --network toegevoegd om het gebruik van het eerder aangemaakte Docker-netwerk aan te geven; en aangezien de toegang tot de HTML5-service via het Docker-netwerk verloopt, is het publiceren van poort 8080 niet nodig:
1 2 3 4 5 6 7 8 | |
Tot slot moet het bestand /etc/ipdiva/httpd/commonParameters.extra.conf van de Mediation Controller-server(s) worden geconfigureerd. De volgende sectie moet worden toegevoegd:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Voordat u de nieuwe instellingen toepast, moet u controleren of de nieuwe configuratie geen blokkerende fout van de webserver Apache2 veroorzaakt.
Voer daarvoor de volgende opdracht uit:
1 | |
Als het antwoord Syntax OK is, kunnen de wijzigingen met de onderstaande opdracht worden toegepast. Controleer anders de configuratie van uw bestand /etc/ipdiva/httpd/commonParameters.extra.conf.
1 | |