Skip to main content

Installation en tant que serveur Web sous Linux – Démarrage rapide

Dans un terminal, suivez les étapes suivantes pour travailler directement avec CODESYS 4 sur le serveur web.

Astuce

Pour un guide complet, voir ce qui suit : Installation en tant que serveur Web pour Linux

Départ CODESYS 4 en tant que serveur local

Privilèges d'administrateur requis

Pour exécuter la procédure suivante sudo Pour exécuter ces commandes, vous devez disposer de privilèges d'administrateur sur votre système (voir Wiki Debian : sudo).

  1. Téléchargez le CODESYS 4 Paquet Debian du magasin CODESYS.

  2. Installez le CODESYS 4 Paquet Debian.

    sudo apt install ./codesys-4_[your version]_[your architecture].deb
  3. Créer le groupe codesys-4 et l'utilisateur c4-server Ces éléments sont nécessaires pour démarrer le serveur et se connecter à l'application.

    Dans l'exemple suivant, un utilisateur de test supplémentaire nommé hugo sera créé et ajouté à codesys-4 groupe. Cet utilisateur pourra se connecter à l'application ultérieurement. Ceci est facultatif. À des fins de test, vous pouvez également ajouter un utilisateur existant au groupe. codesys-4 groupe.

    1. Créez le codesys-4 Ce groupe doit être créé s'il n'existe pas déjà. Il aurait dû être créé automatiquement lors de l'installation du paquet Debian.

      sudo addgroup codesys-4
    2. Créez un nouvel utilisateur système qui exécutera le serveur.

      sudo useradd --system --create-home c4-server
    3. Facultatif : Créez un nouvel utilisateur de test nommé hugo N'oubliez pas le mot de passe.

      sudo adduser hugo
    4. Facultatif : Ajoutez le hugo l'utilisateur à l' codesys-4 groupe.

      sudo adduser hugo codesys-4
      
  4. Dans /etc/systemd/system/, créez un fichier nommé codesys-4.service. Remplacer nano avec votre éditeur préféré.

    sudo nano /etc/systemd/system/codesys-4.service

    Modifiez le fichier comme suit :

    [Unit]
    Description=CODESYS 4 Server
     
    [Service]
    Type=exec
    WorkingDirectory=/opt/codesys-4/
    ExecStart=/opt/codesys-4/c4-server --port 8080
    Restart=always
    # Restart service after 10 seconds if the dotnet service crashes:
    RestartSec=10
    KillSignal=SIGINT
    SyslogIdentifier=codesys-4-server
    User=c4-server
    Environment=ASPNETCORE_ENVIRONMENT=Production
    Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
     
    [Install]
    WantedBy=multi-user.target
  5. Démarrez l'unité systemd que vous venez de créer :

    sudo systemctl start codesys-4

    Le CODESYS 4 Le serveur sera désormais accessible localement sur le port 8080 Vous pourrez désormais vous connecter à l'application avec les identifiants de l'utilisateur créé précédemment. Hugo à http://localhost:8080.

  6. Réglez également l'unité sur enabled pour démarrer automatiquement le serveur au démarrage du système :

    sudo systemctl enable codesys-4

Mise en place d'un proxy inverse

Afin de réaliser CODESYS 4 Pour accéder à l'appareil depuis votre réseau, la configuration d'un proxy inverse HTTPS en amont est requise. Ceci est nécessaire pour des raisons techniques. Pour plus d'informations, consultez : Prépositionnement d'un proxy inverse TLS.

Pour configurer le proxy inverse, vous pouvez utiliser le paquet nginx sur Debian, par exemple. Les étapes nécessaires à la configuration sont expliquées ci-dessous.

  1. Installez le paquet nginx s'il n'a pas déjà été installé :

    sudo apt update && sudo apt install -y nginx
  2. Pour activer la communication HTTPS, vous devez créer un certificat auto-signé temporaire et une clé.

    Risque pour la sécurité

    Créer des certificats auto-signés et les classer comme fiables présente un risque de sécurité important. Veillez à ce qu'aucun tiers n'ait jamais accès à votre certificat ni à votre clé privée. Dans le cas contraire, vous vous exposez à une attaque de type « homme du milieu ».

    De plus, les certificats créés lors des étapes suivantes sont exclusivement destinés à des fins de test et non à une utilisation en production. Pour un déploiement correct, CODESYS 4 Vous devez disposer de certificats TLS opérationnels, conformes aux directives de votre entreprise. Contactez votre service informatique ou votre prestataire de services informatiques pour obtenir de l'aide.

    En cas de doute ou si vous n'êtes pas familiarisé avec ce domaine, vous devriez interrompre toute mise en service à ce stade et contacter votre service informatique ou votre fournisseur de services informatiques.

  3. À des fins de test, créez une clé privée et un certificat pour le proxy inverse :

    1. Créez les dossiers nécessaires.

      sudo mkdir -p /etc/ssl/certs /etc/ssl/private
    2. Créez la clé privée et le certificat auto-signé.

      sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
        -keyout /etc/ssl/private/codesys-4.key \
        -out /etc/ssl/certs/codesys-4-certificate.crt
    3. Rendez la clé lisible uniquement par le propriétaire (root).

      sudo chmod 600 /etc/ssl/private/codesys-4.key
    4. Rendez le certificat lisible par tous et modifiable uniquement par le propriétaire (racine).

      sudo chmod 644 /etc/ssl/certs/codesys-4-certificate.crt
  4. Créez la configuration du proxy inverse. Remplacez nano avec votre éditeur préféré.

    sudo nano /etc/nginx/sites-available/codesys-4
  5. Créez la configuration suivante :

    Exemple 2. /etc/nginx/sites-available/codesys-4
    # See https://docs.microsoft.com/en-us/troubleshoot/developer/webapps/aspnetcore/practice-troubleshoot-linux/2-2-install-nginx-configure-it-reverse-proxy
    # for more information.
    
    server {
     listen	443 ssl;
     listen	[::]:443 ssl;
     ssl_certificate /etc/ssl/certs/codesys-4-certificate.crt;
     ssl_certificate_key /etc/ssl/private/codesys-4.key;
    
     #server_name _;
     server_tokens off; # see https://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens
    
     location / {
     rewrite ^/$ /index.html last;
     proxy_pass http://127.0.0.1:8080;
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection keep-alive;
     proxy_set_header Connection "Upgrade";
     proxy_set_header Host $host;
     proxy_cache_bypass $http_upgrade;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;
    
     #hsts header
     add_header Strict-Transport-Security "max-age=31536000" always;
     }
    }
    
    # Redirect unencrypted http access to encrypted https access.
    server {
     listen 80 default_server;
     listen [::]:80 default_server ipv6only=on;
    
     server_name _;
    
     return 301 https://$host$request_uri;
    }


  6. Activez la configuration via un lien symbolique :

    1. Désactiver la configuration par défaut de nginx.

      sudo rm /etc/nginx/sites-enabled/default
    2. Activez la configuration que vous avez créée.

      sudo ln -s /etc/nginx/sites-available/codesys-4 /etc/nginx/sites-enabled/codesys-4
  7. Redémarrez maintenant nginx pour appliquer la configuration modifiée :

    sudo systemctl restart nginx

    CODESYS 4 devrait maintenant être joignable à https://localhost sur le port 443 ou depuis d'autres appareils de votre réseau à https://[your_device_name/your_ip_address].

  8. Configurez également l'unité nginx sur enabled pour démarrer automatiquement le proxy inverse au démarrage du système :

    sudo systemctl enable nginx
  9. Si vous ne connaissez pas votre adresse IP, exécutez la commande suivante : ip commande. Pour cela, il est nécessaire que le réseau et le pare-feu de votre entreprise autorisent l'accès.

    ip addr

    Le résultat de la commande peut ressembler à ceci :

    #1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    #    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    #    inet 127.0.0.1/8 scope host lo
    #       valid_lft forever preferred_lft forever
    #    inet6 ::1/128 scope host noprefixroute
    #       valid_lft forever preferred_lft forever
    #2: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    #    link/ether 01:23:45:67:89:ab brd ff:ff:ff:ff:ff:ff
    #    inet 192.168.0.123/24 brd 192.168.0.255 scope global dynamic noprefixroute end0
    #       valid_lft 350450sec preferred_lft 350450sec
    #    inet6 fe80::0123:1234:2345:3456/64 scope link noprefixroute
    #       valid_lft forever preferred_lft forever

    Vous trouverez les adresses IP de votre serveur sous le end0 appareil – souvent aussi eth0 ou similaire (voir Wiki Debian : Noms des interfaces réseau).

    • Adresse IPv4 après le mot inet: 192.168.0.123

    • Adresse IPv6 après le mot inet6: fe80::0123:1234:2345:3456 dans l'exemple

Si vous utilisez un certificat auto-signé comme décrit ci-dessus, vous recevrez un avertissement dans votre navigateur :

_c4_img_install_webserver_linux_warning.png

Assurez-vous de vous connecter à votre appareil en comparant le certificat affiché dans le navigateur avec le certificat présent sur l'appareil.

Pour ce faire, exécutez la commande suivante dans votre terminal :

openssl x509 -in /etc/ssl/certs/codesys-4-certificate.crt -noout -fingerprint -sha256

Le résultat contient l'empreinte numérique du certificat. Comparez-la avec l'empreinte numérique SHA-256 du certificat affichée dans votre navigateur. (Voir Étapes pour Firefox, ou dans Google Chrome via le Non sécurisé bouton dans la barre d'adresse → Détails du certificatSi les deux empreintes digitales sont identiques et que vous êtes conscient du risque, vous pouvez ignorer temporairement l'avertissement en cliquant sur Acceptez le risque et continuez (Firefox) ou Accéder à localhost (non sécurisé) (Google Chrome).