Instalación como servidor web para Linux – Guía de inicio rápido
En una terminal, siga los siguientes pasos para trabajar directamente con CODESYS 4 en el servidor web.
Sugerencia
Para obtener una guía completa, consulte lo siguiente: Instalación como servidor web para Linux
A partir de CODESYS 4 como servidor local
Se requieren privilegios de administrador
Para ejecutar lo siguiente sudo Para ejecutar comandos, necesita privilegios de administrador en su sistema (ver Wiki de Debian: sudo).
Descargar el CODESYS 4 Paquete Debian de la tienda CODESYS.
Instalar el CODESYS 4 Paquete Debian.
sudo apt install ./codesys-4_[your version]_[your architecture].deb
Crear el grupo
codesys-4y el usuarioc4-serverEstos son necesarios para iniciar el servidor e iniciar sesión en la aplicación.En el siguiente ejemplo, un usuario de prueba adicional llamado
hugose creará y se agregará acodesys-4grupo. Este usuario podrá iniciar sesión en la aplicación más tarde. Esto es opcional. Para fines de prueba, también podría simplemente agregar un usuario existente al grupo.codesys-4grupo.Crear el
codesys-4grupo si aún no existe. Este grupo debería haberse creado automáticamente durante la instalación del paquete Debian.sudo addgroup codesys-4
Cree un nuevo usuario del sistema que ejecutará el servidor.
sudo useradd --system --create-home c4-server
Opcional: Cree un nuevo usuario de prueba llamado
hugoRecuerda la contraseña.sudo adduser hugo
Opcional: Añadir el
hugousuario alcodesys-4grupo.sudo adduser hugo codesys-4
En
/etc/systemd/system/, crea un archivo llamadocodesys-4.service. Reemplazarnanocon tu editor preferido.sudo nano /etc/systemd/system/codesys-4.service
Edite el archivo de la siguiente manera:
[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
Inicie la unidad systemd que acaba de crear:
sudo systemctl start codesys-4
El CODESYS 4 El servidor ahora será accesible localmente en el puerto
8080Ahora podrá iniciar sesión en la aplicación con las credenciales del usuario creado previamente.Hugoen http://localhost:8080.También configure la unidad en
enabledPara iniciar automáticamente el servidor al arrancar el sistema:sudo systemctl enable codesys-4
Configuración de un proxy inverso
Para hacer CODESYS 4 Para que sea accesible desde otros dispositivos de su red, es necesario configurar un proxy inverso HTTPS ascendente. Esto se debe a requisitos técnicos. Para obtener más información, consulte lo siguiente: Preposicionamiento de un proxy inverso TLS.
Para configurar el proxy inverso, puede usar el paquete nginx en Debian, por ejemplo. Los pasos necesarios para la configuración se explican a continuación.
Instale el paquete nginx si aún no lo ha hecho:
sudo apt update && sudo apt install -y nginx
Para habilitar la comunicación HTTPS, necesita crear un certificado autofirmado temporal y una clave.
Riesgo de seguridad
Crear certificados autofirmados y clasificarlos como de confianza supone un riesgo de seguridad significativo. Asegúrese de que terceros nunca accedan a su certificado ni a su clave privada. De lo contrario, se expone a un ataque de intermediario (man-in-the-middle).
Además, los certificados creados en los siguientes pasos están destinados y son adecuados exclusivamente para fines de prueba y no para uso productivo. Para una correcta implementación de CODESYS 4 Debe contar con certificados TLS listos para producción, creados de acuerdo con las directrices de su empresa. Póngase en contacto con su departamento de TI o proveedor de servicios de TI para obtener ayuda.
Si tiene dudas o no está familiarizado con esta área, debe detener la puesta en marcha en este punto y ponerse en contacto con su departamento de TI o proveedor de servicios de TI.
Para fines de prueba, cree una clave privada y un certificado para el proxy inverso:
Crea las carpetas necesarias.
sudo mkdir -p /etc/ssl/certs /etc/ssl/private
Cree la clave privada y el certificado autofirmado.
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
Hacer que la clave solo sea legible por el propietario (root).
sudo chmod 600 /etc/ssl/private/codesys-4.key
Haga que el certificado sea legible para todos y modificable solo por el propietario (root).
sudo chmod 644 /etc/ssl/certs/codesys-4-certificate.crt
Cree la configuración para el proxy inverso. Reemplace
nanocon tu editor preferido.sudo nano /etc/nginx/sites-available/codesys-4
Cree la siguiente configuración:
ejemplo 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; }Habilite la configuración mediante enlace simbólico:
Deshabilitar la configuración predeterminada de nginx.
sudo rm /etc/nginx/sites-enabled/default
Habilita la configuración que has creado.
sudo ln -s /etc/nginx/sites-available/codesys-4 /etc/nginx/sites-enabled/codesys-4
Ahora reinicie nginx para aplicar la configuración modificada:
sudo systemctl restart nginx
CODESYS 4 Ahora debería poder accederse a: https://localhost en el puerto 443 o desde otros dispositivos en su red en
https://[your_device_name/your_ip_address].También configure la unidad nginx en
enabledpara que también se inicie automáticamente el proxy inverso al arrancar el sistema:sudo systemctl enable nginx
Si no conoce su dirección IP, ejecute el
ipcomando. Para ello, es necesario que la red y el cortafuegos de su empresa permitan el acceso.ip addr
El resultado del comando podría verse así:
#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
Encontrará las direcciones IP de su servidor en la siguiente sección:
end0dispositivo – a menudo tambiéneth0o similar (ver Wiki de Debian: Nombres de interfaces de red).Dirección IPv4 después de la palabra
inet:192.168.0.123Dirección IPv6 después de la palabra
inet6:fe80::0123:1234:2345:3456en el ejemplo
Si utiliza un certificado autofirmado como se describe anteriormente, recibirá una advertencia en su navegador:

Asegúrese de que se está conectando a su dispositivo comparando el certificado que se muestra en el navegador con el certificado del dispositivo.
Para ello, ejecuta el siguiente comando en tu terminal:
openssl x509 -in /etc/ssl/certs/codesys-4-certificate.crt -noout -fingerprint -sha256
La salida contiene la huella digital del certificado. Compárela con la huella digital SHA-256 del certificado en el navegador. (Ver Pasos para Firefox, o en Google Chrome a través de la No es seguro botón en la barra de direcciones → Detalles del certificado. ) Si ambas huellas dactilares son idénticas y usted es consciente del riesgo, puede ignorar temporalmente la advertencia haciendo clic Acepte el riesgo y continúe. (Firefox) o Proceda a localhost (no seguro) (Google Chrome).