[comment]: # translation:outdated

[comment]: # ({a804241c-5407a56a})
# 6 Connessione sicura al frontend

[comment]: # ({/a804241c-5407a56a})

[comment]: # ({5ca67f7f-7cadd09e})
#### Panoramica

Questa sezione fornisce i passaggi di configurazione di Zabbix ed esempi di configurazione per
connessioni TLS sicure tra Zabbix frontend e Zabbix server.

[comment]: # ({/5ca67f7f-7cadd09e})

[comment]: # ({b3284585-ec63018e})
#### Configurazione

Per impostazione predefinita, la comunicazione tra Zabbix frontend e Zabbix server non è crittografata. Per una maggiore sicurezza, abilitare TLS su entrambi i lati. Di seguito è riportato un esempio del modo più semplice per farlo.

1\. Generare certificati e chiavi.

Creare una directory di lavoro:

```bash
sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl
```

Creare un certificato CA (modificare il valore `MyZabbixCA` in modo che corrisponda al nome comune effettivo):

```bash
sudo openssl genrsa -out ca.key 4096
sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=MyZabbixCA/"
```

Generare una chiave privata e un certificato per Zabbix server (modificare il valore `zabbix-server.example.com` in modo che corrisponda al nome comune effettivo):

```bash
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr -subj "/CN=zabbix-server.example.com/"
sudo openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out server.crt
```

Generare una chiave privata e un certificato per Zabbix frontend (modificare il valore `zabbix-frontend-node` in modo che corrisponda al nome comune effettivo):

```bash
sudo openssl genrsa -out frontend.key 2048
sudo openssl req -new -key frontend.key -out frontend.csr -subj "/CN=zabbix-frontend-node/"
sudo openssl x509 -req -days 365 -in frontend.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out frontend.crt
```

2\. Impostare i permessi corretti. 

Per Zabbix server (modificare proprietario/gruppo in base all'utente del demone Zabbix server della propria distribuzione):

```bash
sudo chown root:zabbix /etc/zabbix/ssl/server.{crt,key} /etc/zabbix/ssl/ca.crt
sudo chmod 640 /etc/zabbix/ssl/server.key
sudo chmod 644 /etc/zabbix/ssl/server.crt /etc/zabbix/ssl/ca.crt
```

Per il frontend (modificare proprietario/gruppo in base all'utente del webserver della propria distribuzione):

```bash
sudo chown root:www-data /etc/zabbix/ssl/frontend.{crt,key}
sudo chmod 640 /etc/zabbix/ssl/frontend.key
sudo chmod 644 /etc/zabbix/ssl/frontend.crt
```

3\. Configurare Zabbix server.

In `zabbix_server.conf` aggiungere:

```ini
TLSFrontendAccept=cert
TLSCertFile=/etc/zabbix/ssl/server.crt
TLSKeyFile=/etc/zabbix/ssl/server.key
TLSCAFile=/etc/zabbix/ssl/ca.crt
# Facoltativamente:
# TLSFrontendCertIssuer=/CN=MyZabbixCA/
# TLSFrontendCertSubject=/CN=zabbix-frontend-node/
```

Quindi riavviare il server:

```bash
sudo systemctl restart zabbix-server
```

4\. Configurare Zabbix frontend.

Durante l'[installazione dell'interfaccia web](/manual/installation/frontend), abilitare l'opzione *Encrypt connections from Web interface* (e l'opzione *Verify server certificate issuer and subject*, se necessario) e compilare i campi *TLS CA file*, *TLS key file*, *TLS certificate file* (e i campi *Server TLS certificate issuer* e *Server TLS certificate subject*, se necessario):

![](../../../../assets/en/manual/appendix/install/frontend_encrypt.png){width="600"}

|Parametro|Descrizione|
|--|--------|
|*TLS CA file*|Specificare il percorso completo del file del certificato dell'autorità di certificazione (CA) utilizzato per verificare il certificato del server.|
|*TLS key file*|Specificare il percorso completo del file della chiave privata del client corrispondente al certificato del client.|
|*TLS certificate file*|Specificare il percorso completo del file del certificato del client se è richiesta l'autenticazione TLS reciproca.|
|*Server TLS certificate issuer*|Specificare un Distinguished Name (DN) dell'emittente da confrontare con il certificato del server.|
|*Server TLS certificate subject*|Specificare un Distinguished Name (DN) del soggetto da confrontare con il certificato del server.|

Nelle installazioni esistenti, modificare i seguenti campi in `zabbix.conf.php`:

```php
$ZBX_SERVER_TLS['ACTIVE'] = '1';
$ZBX_SERVER_TLS['CA_FILE'] = '/etc/zabbix/ssl/ca.crt';
$ZBX_SERVER_TLS['KEY_FILE'] = '/etc/zabbix/ssl/frontend.key';
$ZBX_SERVER_TLS['CERT_FILE'] = '/etc/zabbix/ssl/frontend.crt';
// Facoltativamente:
// $ZBX_SERVER_TLS['CERTIFICATE_ISSUER']  = '/CN=MyZabbixCA/';
// $ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] = '/CN=zabbix-server.example.com/';
```

5\. Verificare la crittografia confermando che non vi siano messaggi di errore in Zabbix frontend o nel file di log di Zabbix server:

```bash
tail -f /var/log/zabbix/zabbix_server.log
```

[comment]: # ({/b3284585-ec63018e})
