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).
Téléchargez le CODESYS 4 Paquet Debian du magasin CODESYS.
Installez le CODESYS 4 Paquet Debian.
sudo apt install ./codesys-4_[your version]_[your architecture].deb
Créer le groupe
codesys-4et l'utilisateurc4-serverCes é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é
hugosera créé et ajouté àcodesys-4groupe. 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-4groupe.Créez le
codesys-4Ce 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
Créez un nouvel utilisateur système qui exécutera le serveur.
sudo useradd --system --create-home c4-server
Facultatif : Créez un nouvel utilisateur de test nommé
hugoN'oubliez pas le mot de passe.sudo adduser hugo
Facultatif : Ajoutez le
hugol'utilisateur à l'codesys-4groupe.sudo adduser hugo codesys-4
Dans
/etc/systemd/system/, créez un fichier nommécodesys-4.service. Remplacernanoavec 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
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
8080Vous pourrez désormais vous connecter à l'application avec les identifiants de l'utilisateur créé précédemment.Hugoà http://localhost:8080.Réglez également l'unité sur
enabledpour 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.
Installez le paquet nginx s'il n'a pas déjà été installé :
sudo apt update && sudo apt install -y nginx
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.
À des fins de test, créez une clé privée et un certificat pour le proxy inverse :
Créez les dossiers nécessaires.
sudo mkdir -p /etc/ssl/certs /etc/ssl/private
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
Rendez la clé lisible uniquement par le propriétaire (root).
sudo chmod 600 /etc/ssl/private/codesys-4.key
Rendez le certificat lisible par tous et modifiable uniquement par le propriétaire (racine).
sudo chmod 644 /etc/ssl/certs/codesys-4-certificate.crt
Créez la configuration du proxy inverse. Remplacez
nanoavec votre éditeur préféré.sudo nano /etc/nginx/sites-available/codesys-4
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; }Activez la configuration via un lien symbolique :
Désactiver la configuration par défaut de nginx.
sudo rm /etc/nginx/sites-enabled/default
Activez la configuration que vous avez créée.
sudo ln -s /etc/nginx/sites-available/codesys-4 /etc/nginx/sites-enabled/codesys-4
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].Configurez également l'unité nginx sur
enabledpour démarrer automatiquement le proxy inverse au démarrage du système :sudo systemctl enable nginx
Si vous ne connaissez pas votre adresse IP, exécutez la commande suivante :
ipcommande. 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
end0appareil – souvent aussieth0ou similaire (voir Wiki Debian : Noms des interfaces réseau).Adresse IPv4 après le mot
inet:192.168.0.123Adresse IPv6 après le mot
inet6:fe80::0123:1234:2345:3456dans l'exemple
Si vous utilisez un certificat auto-signé comme décrit ci-dessus, vous recevrez un avertissement dans votre navigateur :

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