Installazione come server web per Linux - Guida rapida
In un terminale, segui i seguenti passaggi per lavorare direttamente con CODESYS 4 sul server web.
Suggerimento
Per una guida completa, consultare quanto segue: Installazione come server web per Linux
Di partenza CODESYS 4 come server locale
Sono necessari i privilegi di amministratore.
Per eseguire quanto segue sudo comandi, è necessario disporre dei privilegi di amministratore sul sistema (vedere Wiki di Debian: sudo).
Scarica il CODESYS 4 Pacchetto Debian disponibile nel CODESYS Store.
Installare il CODESYS 4 Pacchetto Debian.
sudo apt install ./codesys-4_[your version]_[your architecture].deb
Crea il gruppo
codesys-4e l'utentec4-serverQuesti sono necessari per avviare il server e accedere all'applicazione.Nell'esempio seguente, un utente di prova aggiuntivo denominato
hugoverrà creato e aggiunto acodesys-4gruppo. Questo utente potrà accedere all'applicazione in seguito. Questa operazione è facoltativa. A scopo di test, è possibile aggiungere semplicemente un utente esistente al gruppo.codesys-4gruppo.Crea il
codesys-4gruppo se non esiste già. Questo gruppo dovrebbe essere stato creato automaticamente durante l'installazione del pacchetto Debian.sudo addgroup codesys-4
Crea un nuovo utente di sistema che eseguirà il server.
sudo useradd --system --create-home c4-server
Opzionale: crea un nuovo utente di prova denominato
hugoRicorda la password.sudo adduser hugo
Facoltativo: aggiungi il
hugoutente alcodesys-4gruppo.sudo adduser hugo codesys-4
In
/etc/systemd/system/, crea un file denominatocodesys-4.service. Sostituirenanocon il tuo editor preferito.sudo nano /etc/systemd/system/codesys-4.service
Modifica il file come segue:
[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
Avvia l'unità systemd che hai appena creato:
sudo systemctl start codesys-4
IL CODESYS 4 Il server sarà ora raggiungibile localmente sulla porta
8080Ora potrai accedere all'applicazione con le credenziali dell'utente creato in precedenza.HugoA http://localhost:8080.Impostare inoltre l'unità su
enabledper avviare automaticamente il server all'avvio del sistema:sudo systemctl enable codesys-4
Configurazione di un proxy inverso
Per fare CODESYS 4 Per rendere l'accesso da altri dispositivi alla rete è necessario configurare un proxy inverso HTTPS upstream. Ciò è richiesto da esigenze tecniche. Per ulteriori informazioni, consultare quanto segue: Preposizionamento di un proxy inverso TLS.
Per configurare il reverse proxy, è possibile utilizzare il pacchetto nginx su Debian, ad esempio. I passaggi necessari per la configurazione sono descritti di seguito.
Installa il pacchetto nginx se non è già stato fatto:
sudo apt update && sudo apt install -y nginx
Per abilitare la comunicazione HTTPS, è necessario creare un certificato temporaneo autofirmato e una chiave.
Rischio per la sicurezza
La creazione di certificati autofirmati e la loro classificazione come attendibili rappresenta un rischio significativo per la sicurezza. Assicuratevi che terze parti non abbiano mai accesso al vostro certificato o alla vostra chiave privata. In caso contrario, vi esporrete al rischio di un attacco man-in-the-middle.
Inoltre, i certificati creati nei passaggi seguenti sono destinati e adatti esclusivamente a scopi di test e non per l'uso in produzione. Per una corretta implementazione di CODESYS 4 È necessario disporre di certificati TLS pronti per la produzione, creati in conformità con le linee guida aziendali. Contatta il tuo reparto IT o il tuo fornitore di servizi IT per assistenza.
In caso di dubbi o se non si ha familiarità con quest'area, è consigliabile interrompere la fase di messa in servizio a questo punto e contattare il reparto IT o il fornitore di servizi IT.
A scopo di test, crea una chiave privata e un certificato per il proxy inverso:
Crea le cartelle necessarie.
sudo mkdir -p /etc/ssl/certs /etc/ssl/private
Crea la chiave privata e il certificato autofirmato.
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
Rendi la chiave leggibile solo dal proprietario (root).
sudo chmod 600 /etc/ssl/private/codesys-4.key
Rendi il certificato leggibile da tutti e scrivibile solo dal proprietario (root).
sudo chmod 644 /etc/ssl/certs/codesys-4-certificate.crt
Crea la configurazione per il proxy inverso. Sostituisci
nanocon il tuo editor preferito.sudo nano /etc/nginx/sites-available/codesys-4
Crea la seguente configurazione:
Esempio 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; }Abilita la configurazione tramite collegamento simbolico:
Disabilita la configurazione predefinita di nginx.
sudo rm /etc/nginx/sites-enabled/default
Abilita la configurazione che hai creato.
sudo ln -s /etc/nginx/sites-available/codesys-4 /etc/nginx/sites-enabled/codesys-4
Ora riavvia nginx per applicare la configurazione modificata:
sudo systemctl restart nginx
CODESYS 4 ora dovrebbe essere raggiungibile a https://localhost sulla porta 443 o da altri dispositivi sulla rete a
https://[your_device_name/your_ip_address].Imposta anche l'unità nginx su
enabledper avviare automaticamente anche il reverse proxy all'avvio del sistema:sudo systemctl enable nginx
Se non conosci il tuo indirizzo IP, esegui il
ipcomando. Il requisito fondamentale è che la rete aziendale e il firewall consentano l'accesso.ip addr
L'output del comando potrebbe apparire più o meno così:
#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
Troverai gli indirizzi IP del tuo server sotto
end0dispositivo – spesso ancheeth0o simili (vedere Wiki di Debian: Nomi delle interfacce di rete).Indirizzo IPv4 dopo la parola
inet:192.168.0.123Indirizzo IPv6 dopo la parola
inet6:fe80::0123:1234:2345:3456nell'esempio
Se si utilizza un certificato autofirmato come descritto sopra, verrà visualizzato un avviso nel browser:

Assicurati di connetterti al tuo dispositivo confrontando il certificato visualizzato nel browser con il certificato presente sul dispositivo.
Per fare ciò, esegui il seguente comando nel tuo terminale:
openssl x509 -in /etc/ssl/certs/codesys-4-certificate.crt -noout -fingerprint -sha256
L'output contiene l'impronta digitale del certificato. Confrontala con l'impronta digitale SHA-256 del certificato nel browser. (Vedi Passaggi per Firefox, oppure in Google Chrome tramite il Non sicuro pulsante nella barra degli indirizzi → Dettagli del certificato. ) Se entrambe le impronte digitali sono identiche e sei consapevole del rischio, puoi ignorare temporaneamente l'avviso facendo clic Accetta il rischio e continua (Firefox) o Procedi con localhost (non sicuro) (Google Chrome).