iRM auf Ubuntu installieren

Vorwort

Diese Installationsanleitung basiert auf einem Ubuntu 22.04 Server. Die Befehle können bei anderen Linux-Distributionen abweichen.

Achtung

Es wird dringend empfohlen, ein aktuelles, systemd-basiertes Linux-System zu verwenden.


Unterstützte Versionen

Diese Anleitung bezieht sich auf folgende Softwareversionen:

  • Router Management: 2025.03.0

  • Autoupdate: 2025.03.0


Systemanforderungen

Applikationsserver

  • Ubuntu ≥ 22.04 Server

  • 8 vCPUs

  • 16 GB RAM

  • 100 GB Festplattenspeicher

Optional: Dedizierter Datenbankserver für größere Umgebungen

  • Ubuntu ≥ 22.04 Server

  • 8 vCPUs

  • 16 GB RAM

  • 100 GB Festplattenspeicher


PostgreSQL-Datenbank einrichten

Installieren Sie einen PostgreSQL-Datenbankserver auf dem Applikationsserver oder auf einem dedizierten Datenbankserver:

sudo apt update
sudo apt install postgresql-14 -y

Melden Sie sich anschließend als PostgreSQL-Benutzer an, starten Sie das psql-Kommandozeilenwerkzeug und führen Sie die SQL-Befehle aus:

sudo -u postgres psql

Führen Sie nun folgende SQL-Befehle zur Erstellung von Datenbank und Benutzer aus:

create database insysicomroutermgmt;
create user u4insysicomroutermgmt with encrypted password 'pw4insysicomroutermgmt';
alter database insysicomroutermgmt owner to u4insysicomroutermgmt;
grant all privileges on database insysicomroutermgmt to u4insysicomroutermgmt;
\q

Zusätzliche Schritte für einen dedizierten PostgreSQL-Server

Optionaler Schritt

Ein dedizierter Server für die Datenbank kann insbesondere in größeren oder sicherheitskritischen Umgebungen Vorteile bieten, etwa durch bessere Performance, Lastentkopplung und eine klarere Trennung von Zuständigkeiten innerhalb der IT-Infrastruktur. Zudem lassen sich Zugriffsrechte und Netzwerksegmente gezielter absichern, was zu einer erhöhten Gesamtsicherheit beiträgt.

Allerdings ist der Betrieb eines separaten Datenbankservers mit zusätzlichem Verwaltungsaufwand und Infrastrukturkosten verbunden. Für kleinere Installationen oder Testumgebungen ist ein dedizierter Server nicht erforderlich – in diesen Fällen kann die Datenbank problemlos auf demselben System wie die iRM-Anwendung betrieben werden.

Wenn die Datenbank auf einem separaten Server läuft, muss der Remote-Zugriff aktiviert werden. Der Pfad zu den Konfigurationsdateien kann je nach PostgreSQL-Version variieren (in diesem Beispiel: Version 14).

Öffnen Sie die Konfigurationsdatei postgresql.conf:

sudo vi /etc/postgresql/14/main/postgresql.conf

Suchen Sie folgende Zeile:

#listen_addresses = 'localhost'

Kommentieren Sie diese aus und ändern Sie den Wert wie folgt, um Zugriffe von außen zu erlauben:

listen_addresses = '*'

Speichern und schließen Sie die Datei. Bearbeiten Sie nun die Datei pg_hba.conf, um externe Verbindungen zu erlauben:

sudo vi /etc/postgresql/{db-psql-version}/main/pg_hba.conf

Ersetzen Sie folgenden Eintrag:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

durch:

# IPv4 local connections:
host    all             all             0.0.0.0/0               md5

Falls eine aktive Firewall vorhanden ist, öffnen Sie den PostgreSQL-Port:

sudo ufw allow 5432/tcp

Starten Sie abschließend den Datenbankdienst neu:

sudo systemctl restart postgresql

Einrichtung des Applikationsservers

Erstellen Sie ein Verzeichnis in Ihrem Home-Verzeichnis und kopieren Sie die Installations-ZIP-Datei irm_linux_2025_03_0.zip in dieses Verzeichnis. Entpacken Sie den Inhalt und merken Sie sich den Pfad. Sie benötigen die ausführbare Datei der Routermanagement-Anwendung für die nächsten Schritte.

mkdir dist
unzip irm_linux_2025_03_0.zip -d dist
ls -aFl dist

Der ls-Befehl sollte folgende Dateien anzeigen:

  • insysicom-routermgmt

  • insysicom-autoupdate

  • VERSIONS.txt

Sie sollten die Dateien insysicom-routermgmt und insysicom-autoupdate im Verzeichnis dist sehen.

Machen Sie die neuen Binärdateien ausführbar, falls das ls-Kommando nicht das Ausführbarkeits-Flag * hinter dem Dateinamen zeigt.

Für die Datei insysicom-routermgmt:

sudo chmod +x dist/insysicom-routermgmt

Für die Datei insysicom-autoupdate:

sudo chmod +x dist/insysicom-autoupdate

Erstellen Sie einen Systembenutzer sowie alle benötigten Verzeichnisse. Füllen Sie die Verzeichnisse mit Konfigurationsdateien und Binärdateien der Anwendung:

sudo mkdir /var/opt/insysicom-routermgmt
sudo adduser --home /var/opt/insysicom-routermgmt --no-create-home --gecos '' --disabled-password insysicom-routermgmt
sudo mkdir -p /opt/insysicom-routermgmt/etc
sudo mkdir -p /opt/insysicom-routermgmt/bin
sudo cp ./dist/insysicom-routermgmt /opt/insysicom-routermgmt/bin
sudo cp ./dist/insysicom-autoupdate /opt/insysicom-routermgmt/bin
sudo chown -R insysicom-routermgmt:insysicom-routermgmt /opt/insysicom-routermgmt
sudo chown -R insysicom-routermgmt:insysicom-routermgmt /var/opt/insysicom-routermgmt

Installation von Routermanagement vorbereiten

Die Anwendung wird nun zum ersten Mal initialisiert. Wechseln Sie zum zuvor angelegten Benutzer insysicom-routermgmt und navigieren Sie in das Verzeichnis /opt/insysicom-routermgmt/etc. Dort wird später die generierte Konfigurationsdatei abgelegt. Die Umgebungsvariablen sind für die Datenbankverbindung notwendig. Der Initialisierungsprozess bereitet die Datenbank vor und legt danach die Konfigurationsdatei im aktuellen Verzeichnis ab. Diese Datei enthält zentrale Anwendungseinstellungen.

Hinweis:
Falls Sie einen dedizierten Datenbankserver verwenden, passen Sie den Wert von BARRACUDA_DATABASE_ARGS entsprechend der IP-Adresse oder dem Hostnamen des Datenbankservers an, z. B.:
BARRACUDA_DATABASE_ARGS="... host=mydbserver port=5432 ..."

sudo -i -u insysicom-routermgmt
cd /opt/insysicom-routermgmt/etc/
export BARRACUDA_DATABASE_DIALECT="postgres"
export BARRACUDA_DATABASE_ARGS="user=u4insysicomroutermgmt password=pw4insysicomroutermgmt dbname=insysicomroutermgmt host=localhost port=5432 sslmode=disable"
/opt/insysicom-routermgmt/bin/insysicom-routermgmt system upgrade --init --dump-config=insysicom-routermgmt.conf

Passen Sie die Konfiguration in der Datei insysicom-routermgmt.conf an, um die Kommunikation zwischen diesem Dienst und dem Autoupdate-Dienst zu ermöglichen:

vi /opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf
/opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf

barracuda_admin_api_port: 9201
barracuda_admin_api_host: "127.0.0.1"
barracuda_grpc_server_port: 50051
barracuda_grpc_server_host: "127.0.0.1"
bonaventure_grpc_server_port: 50052
bonaventure_grpc_server_host: "127.0.0.1"
barracuda_service_port: 9202
barracuda_service_host: "127.0.0.1"
barracuda_api_port: 9203
barracuda_api_host: "127.0.0.1"
barracuda_swagger_host: localhost
barracuda_swagger_port: 9203
barracuda_data_path: /var/opt/insysicom-routermgmt

Diese Einstellungen stellen sicher, dass der Routermanagement-Daemon nur über localhost erreichbar ist und keine Konflikte mit typischen IP-Ports entstehen. Die Anwendung wird durch einen vorgelagerten NGINX-Webserver abgesichert. Der Parameter barracuda_data_path muss angepasst werden, da der Initialisierungsprozess das versteckte Verzeichnis .barracuda hinzufügt (nicht notwendig bei einem dedizierten Applikationsserver).


Installation von Autoupdate vorbereiten

Für die Konfiguration des Autoupdate-Dienstes muss eine Umgebungsdatei im selben Verzeichnis wie die Konfiguration des Routermanagements erstellt werden:

vi /opt/insysicom-routermgmt/etc/insysicom-autoupdate.env

Fügen Sie folgenden Inhalt ein:

AUTOUPDATE_HTTP_PORT=8082
AUTOUPDATE_GRPC_PORT=50052
AUTOUPDATE_HTTP_READ_TIMEOUT=60s
AUTOUPDATE_SHUTDOWN_TIMEOUT=10s
FILE_STORAGE_TYPE=filesystem

Ergänzen Sie weitere erforderliche Umgebungsvariablen, die bereits in der Routermanagement-Konfiguration definiert wurden:

echo "MASTER_KEY=$(grep -oP '(?<=barracuda_master_key: ).*' /opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf)" >> /opt/insysicom-routermgmt/etc/insysicom-autoupdate.env
echo "DATABASE_ARGS=\"$(grep -oP '(?<=barracuda_database_args: ).*' /opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf) $(grep -oP 'dbname=.*' /opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf)\"" >> /opt/insysicom-routermgmt/etc/insysicom-autoupdate.env
echo "DATA_DIRECTORY=$(grep -oP '(?<=barracuda_data_path: ).*' /opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf)" >> /opt/insysicom-routermgmt/etc/insysicom-autoupdate.env

Führen Sie dann folgenden Befehl aus, um die Datenbank für den Autoupdate-Dienst vorzubereiten:

set -a
source /opt/insysicom-routermgmt/etc/insysicom-autoupdate.env
set +a
/opt/insysicom-routermgmt/bin/insysicom-autoupdate -migrate

Das Ergebnis sollte entweder Migration completed successfully oder No pending migrations sein – abhängig vom Zustand der Datenbank.

systemd-Dienste erstellen

Wechseln Sie zurück zu Ihrem administrativen Benutzer:

exit

systemd-Dienst für das Routermanagement erstellen

sudo vi /etc/systemd/system/insysicom-routermgmt.service

Hinweis:
Falls PostgreSQL nicht auf demselben System läuft, entfernen Sie bitte die Zeile After=postgresql.service im Abschnitt [Unit].

[Unit]
Description=INSYS icom Router Management
After=postgresql.service

[Service]
Type=simple
User=insysicom-routermgmt
Group=insysicom-routermgmt
WorkingDirectory=/var/opt/insysicom-routermgmt
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=insysicom-routermgmt
ExecStart=/opt/insysicom-routermgmt/bin/insysicom-routermgmt serve all -c /opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf

[Install]
WantedBy=multi-user.target

systemd-Dienst für Autoupdate erstellen

sudo vi /etc/systemd/system/insysicom-autoupdate.service

Hinweis:
Falls PostgreSQL nicht auf demselben System läuft, entfernen Sie bitte die Zeile After=postgresql.service im Abschnitt [Unit].

[Unit]
Description=INSYS icom Autoupdateserver
After=postgresql.service

[Service]
Type=simple
User=insysicom-routermgmt
Group=insysicom-routermgmt
WorkingDirectory=/var/opt/insysicom-routermgmt
StandardOutput=file:/var/opt/insysicom-routermgmt/autoupdate_stdout.log
StandardError=file:/var/opt/insysicom-routermgmt/autoupdate_stderr.log
SyslogIdentifier=insysicom_autoupdate
EnvironmentFile=/opt/insysicom-routermgmt/etc/insysicom-autoupdate.env
ExecStart=/opt/insysicom-routermgmt/bin/insysicom-autoupdate -serve-autoupdate

[Install]
WantedBy=multi-user.target

systemd-Dienste starten

sudo systemctl enable insysicom-routermgmt.service
sudo systemctl start insysicom-routermgmt.service
sudo systemctl enable insysicom-autoupdate.service
sudo systemctl start insysicom-autoupdate.service

Überprüfen Sie den Status der Dienste. Sie sollten mit active (running) und grünem Indikator angezeigt werden:

sudo systemctl status insysicom-routermgmt.service
sudo systemctl status insysicom-autoupdate.service

Cronjob zum Abrufen von Geräteinformationen einrichten

sudo crontab -e

Fügen Sie am Ende der Datei folgende Zeilen hinzu:

30 4 * * * /opt/insysicom-routermgmt/bin/insysicom-routermgmt system fetchDeviceInfo -c /opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf;
0 0 * * * /opt/insysicom-routermgmt/bin/insysicom-routermgmt system updateLicenseStatus -c /opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf;

NGINX-Webserver einrichten

Hinweis:
Es wird dringend empfohlen, mit der folgenden HTTP-only-Konfiguration zu starten, um den ordnungsgemäßen Betrieb der Anwendung zu überprüfen, bevor TLS aktiviert wird.

NGINX installieren

sudo apt update
sudo apt install nginx

Neue NGINX-Serverkonfiguration erstellen

sudo vi /etc/nginx/sites-available/insysicom-routermgmt
server {
    listen 80;
    listen [::]:80;
    server_name _;

    client_max_body_size 300M;
    client_header_timeout 600;
    client_body_timeout 600;
    send_timeout 600;
    proxy_read_timeout 600;

    location = / {
        return 301 /ui;
    }
    location /ui/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:9203;
    }
    location /api/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:9203;
    }
    location /auth/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:9203;
    }
    location /graphql {
        proxy_read_timeout 180s;
        proxy_connect_timeout 180s;
        proxy_send_timeout 180s;
        send_timeout 180s;
        proxy_pass http://127.0.0.1:9203/graphql;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
    }
}

server {
    listen 8080;
    listen [::]:8080;
    server_name _;
    location /devicecontrol {
        proxy_read_timeout 180s;
        proxy_connect_timeout 180s;
        proxy_send_timeout 180s;
        send_timeout 180s;
        proxy_pass http://127.0.0.1:9202/devicecontrol;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /autoupdate/ {
        proxy_pass http://127.0.0.1:8082;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

NGINX-Konfiguration aktivieren und Webserver anpassen

sudo ln -s /etc/nginx/sites-available/insysicom-routermgmt /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default

Passen Sie die Servereinstellungen an:

sudo vi /etc/nginx/nginx.conf
...
worker_rlimit_nofile 40000;
events {
    worker_connections 20000;
    # multi_accept on;
}

http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Konfiguration prüfen und Webserver neu starten

sudo nginx -t
sudo systemctl restart nginx

Systemeinstellungen anpassen

Um eine Routerverbindung einzurichten, sind Änderungen an den Systemeinstellungen erforderlich. Andernfalls schlägt der Download der Startkonfiguration eines Routers fehl.

Öffnen Sie einen Webbrowser und navigieren Sie zur installierten Anwendung:

http://myserver_or_ip_address

Melden Sie sich mit den Standard-Zugangsdaten an (Benutzername und Passwort können später geändert werden):

Username: default
Password: secret

Navigieren Sie zu:

System Administration ⇒ System settings
und passen Sie die folgenden drei Einstellungen wie folgt an:

Name

Wert

DEVICECONTROL_SERVER_CERT

NONE

AUTOUPDATE_SERVER_CERT

NONE

INVENTORY_CONNECTION_PROFILE_HOSTNAME

IP-Adresse oder FQDN Ihres Applikationsservers


Fully Qualified Domain Name (FQDN)

Überprüfung der Konfiguration

Navigieren Sie zur Routerliste, registrieren Sie einen neuen Router mit Dummy-Daten und versuchen Sie, die Startkonfiguration herunterzuladen.

Hinweis: Falls die Registrierung oder der Download fehlschlägt, könnte die Anwendung nicht korrekt konfiguriert sein. Prüfen Sie Netzwerk- oder Firewall-Einstellungen. Bei Bedarf wenden Sie sich bitte an unser Support-Team.

Extrahieren Sie das Tarball-Archiv und öffnen Sie die Datei ConnectionProfile_xxx.txt in einem Editor. Der Inhalt sollte wie folgt aussehen:

host = "164.90.225.14"
path = "devicecontrol"
active_https = "0"
port = "8080"
device_id = "9a201fa4-c022-49ae-a5ba-86ee79acbbdd"
realm_uri = "devices.insys-tec.net"
-- configure the remote management service
cli("administration.remote_management.active=1")
cli("administration.remote_management.host=" .. host)
cli("administration.remote_management.path=" .. path)
cli("administration.remote_management.port=" .. port)
cli("administration.remote_management.device_id=" .. device_id)
cli("administration.remote_management.realm_uri=" .. realm_uri)
cli("administration.remote_management.active_https=" .. active_https)
cli("administration.remote_management.client_cert=" .. cert_name)
cli("administration.remote_management.client_key=" .. key_name)

-- activate profile
cli("administration.profiles.activate")

Der Parameter host muss mit der IP-Adresse Ihres Applikationsservers übereinstimmen. Wird ein FQDN verwendet, ist dieser im Parameter host anzugeben.


Prüfung des WebSocket-Zugangs

Von einem anderen System aus prüfen Sie den WebSocket-Zugriff über:

curl http://164.90.225.14:8080/devicecontrol

Hinweis: Wenn die Fehlermeldung handshake error: bad "Upgrade" header erscheint, funktioniert die Verbindung erwartungsgemäß. Bei anderen Fehlern prüfen Sie bitte Ihre Netzwerk- oder Firewallkonfiguration.


Betrieb im HTTP-only-Modus

Die Routermanagement-Anwendung ist jetzt bereit für den Einsatz über HTTP (ohne TLS).

In folgenden Szenarien ist keine zusätzliche TLS-Verschlüsselung notwendig:

  • Das Netzwerk ist vollständig privat oder nicht von außen erreichbar.

  • Die Router sind über gesicherte VPN-Tunnel (z. B. IPSec) mit dem Unternehmensnetz verbunden.

Andernfalls wird empfohlen, die TLS-Konfiguration gemäß Anleitung vorzunehmen.


Absicherung mit TLS

Da es sich bei iRM um eine vollständig webbasierte Anwendung handelt, kann TLS auf verschiedene Arten implementiert werden. Diese Anleitung verwendet private Zertifikate und trennt Webschnittstelle und Routerverbindungen (WebSockets) über verschiedene IP-Ports, jedoch mit derselben Server-IP.

  • Anwendung: Port 80

  • Router-Zugriff: Port 8080

  • Nach TLS: Port 443 und 8443

Hinweis:
Wenn Sie öffentliche Zertifikate, dedizierte IP-Adressen oder DNS-basierte NGINX-Hosts verwenden möchten, kontaktieren Sie bitte den Support.


Serverzertifikat erstellen

⚠️ Warnung: Selbstsignierte Zertifikate werden nicht unterstützt!

Ein auf Ihre Umgebung abgestimmtes Serverzertifikat ist erforderlich. Der Common Name (CN) sollte dem FQDN des Servers entsprechen. Für IP-basierte Zugriffe ist zusätzlich ein Subject Alternative Name (SAN) mit IP erforderlich.

Beispielhafte Zertifikatsausgabe (gekürzt):

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 5909721596463708658 (0x52038c7b1eac79f2)
    Signature Algorithm: sha256WithRSAEncryption
    Issuer: C=DE, L=Regensburg, O=INSYS MICROELECTRONICS GmbH, CN=iRM Install Guide Certificate Services
    Validity
        Not Before: May 24 12:40:00 2022 GMT
        Not After : May 24 12:40:00 2032 GMT
    Subject: C=DE, L=Regensburg, O=INSYS MICROELECTRONICS GmbH, CN=iRM Install Guide Certificate Services
    X509v3 extensions:
        X509v3 Basic Constraints:
            CA:TRUE
        X509v3 Key Usage: critical
            Certificate Sign, CRL Sign

TLS-Unterstützung für Router Management aktivieren

Damit das Router Management über TLS kommunizieren kann, benötigt es Zugriff auf das neue Serverzertifikat. Da NGINX die TLS-Terminierung übernimmt, muss lediglich das öffentliche TLS-Zertifikat hochgeladen werden, z. B. irmop1.icomcloud.net.crt.

Zum Import des Zertifikats:

  • öffnen Sie die Router-Management-Oberfläche im Browser

  • navigieren Sie zu Certificate Management ⇒ Certificates

  • laden Sie das Zertifikat hoch (Name und optional Passwort erforderlich)

  • danach: Action ⇒ Use as server certificate auswählen

Navigieren Sie zu System Administration ⇒ System settings und setzen Sie den passenden TLS-Port:

Name

Wert

INVENTORY_CONNECTION_PROFILE_PORT

8443

Nach diesen Änderungen kann das Router Management Verbindungen über HTTPS entgegennehmen. Testen Sie dies, indem Sie die Startkonfiguration eines zuvor registrierten Testgeräts erneut herunterladen und öffnen (z. B. ConnectionProfile_xxx.txt). Diese sollte ein Client-Zertifikat, einen privaten Schlüssel und weitere Parameter enthalten.

Hinweis

Sollte der Download der Konfiguration fehlschlagen, wurde die TLS-Konfiguration vermutlich nicht korrekt abgeschlossen.


TLS-Client-Authentifizierung hinzufügen

Beim Registrieren eines neuen Routers generiert das System automatisch ein Client-Zertifikat. Dieses wird in die Startkonfiguration integriert und beim Gerät installiert.

Hinweis

Es wird dringend empfohlen, eine eigene Zertifizierungsstelle (CA) für Client-Zertifikate zu erstellen. Die standardmäßig generierte CA enthält Eigenschaften, die auf INSYS icom verweisen. Alternativ kann eine bestehende PKI verwendet und eine signierende CA hochgeladen werden. Bei Fragen zur PKI-Integration wenden Sie sich bitte an den Support.

Wichtig

Verwenden Sie niemals HTTPS für die Verteilung der Certificate Revocation List (CRL), da dies zu Fehlern führen kann. HTTP ist ausreichend, da CRLs signiert sind und keine sensitiven Daten enthalten.

Zur Konfiguration:

  • Navigieren Sie zu Certificate Management ⇒ Certificate Authorities

  • Klicken Sie auf Upload und wählen Sie die CA-Datei (z. B. your_client_authentication-ca.crt)

  • Wählen Sie: New certificate authority with key (Format: PKCS#12)

  • Vergeben Sie Name und ggf. Passwort

  • Nach dem Upload: Select action ⇒ Configure client CA

  • Lesen und bestätigen Sie alle Hinweise

Dann:

  • Alle Router löschen und einen neuen Test-Router registrieren

  • Der neue Client-Zertifikat wird von der neu konfigurierten CA signiert

Falls die Registrierung fehlschlägt, überprüfen Sie die Konfiguration oder kontaktieren den Support.


TLS-Client-Authentifizierung in NGINX aktivieren

  1. Neue Zertifizierungsstelle im PEM-Format herunterladen

  2. Datei in SSL-Verzeichnis kopieren:

sudo cp your_client_authentication-ca.crt /etc/nginx/ssl
  1. NGINX-Konfiguration für Port 8443 anpassen:

sudo vi /etc/nginx/sites-available/insysicom-routermgmt
server {
    listen 8443 ssl;
    ...
    ssl_client_certificate /etc/nginx/ssl/your_client_authentication-ca.crt;
    ssl_verify_client on;
    ...
}
  1. Konfiguration testen und Webserver neustarten:

sudo nginx -t
sudo systemctl restart nginx

Websocket-Endpunkt überprüfen

  1. Verbindung ohne Client-Zertifikat testen:

curl https://164.90.225.14:8443/devicecontrol

Erwartet: Fehlerseite mit 400 No required SSL certificate was sent

  1. Verbindung mit Client-Zertifikat:

  • client.crt und client.key aus Startkonfiguration extrahieren

curl --cert client.crt --key client.key --cacert iRM_Install_Guide_Certificate_Services.crt https://164.90.225.14:8443/devicecontrol

Hinweis

Bei bad "Upgrade" header funktioniert die Authentifizierung wie gewünscht.


Weiterleitung des Client-Zertifikats an iRM

Zur Weiterverarbeitung des Client-Zertifikats in iRM, konfigurieren Sie NGINX wie folgt:

sudo vi /etc/nginx/sites-available/insysicom-routermgmt
server {
    listen 8443 ssl;
    ...
    location /devicecontrol {
        ...
        proxy_set_header X-Forwarded-Client-Cert $ssl_client_cert;
    }
    location /autoupdate/ {
        ...
        proxy_set_header X-Forwarded-Client-Cert $ssl_client_cert;
    }
}
sudo nginx -t
sudo systemctl restart nginx

Hinweise zur Verbindung eines icom OS Routers

Da in diesem Beispiel private Zertifikate verwendet werden, vertraut der icom OS Router der CA zunächst nicht. Daher:

  • CA-Zertifikate manuell im Router hochladen: Administration ⇒ Certificates

  • Reihenfolge beachten: Root CA zuerst, dann Zwischenstellen

Testen Sie die Verbindung:

  • Administration ⇒ Debugging im Router öffnen

  • Ping auf IP/FQDN des Router Management Servers ausführen

Registrieren Sie dann den icom OS Router in iRM und laden Sie die Startkonfiguration hoch: Administration ⇒ icom Router Management

Bei erfolgreicher Verbindung ändert sich der Verbindungsstatus zu "online".


Abschluss der Installation

Hinweis

Die Installation gilt erst nach Prüfung durch das Support-Team als abgeschlossen. Eine Checkliste zur Endabnahme ist verfügbar: Post installation checklist.