Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. Introduzione

Se vuoi utilizzare l'interfaccia web di Checkmk tramite HTTPS, dovrai configurare quanto segue sul tuo server di monitoraggio, indipendentemente dalle tue istanze:

  • Il modulo Apache mod_ssl è installato e attivato.

  • I moduli Apache mod_rewrite e mod_headers siano presenti e anch’essi attivati.

  • Hai un certificato del server valido.

  • Il server è accessibile tramite HTTPS.

Questo articolo spiega tutto ciò che è necessario per ottenere tale configurazione.

2. Attivazione dei moduli Apache

L'accesso HTTPS all'interfaccia di Checkmk richiede il modulo Apache mod_ssl. Nel prosieguo del Setup, partiamo inoltre dal presupposto che una connessione in entrata sulla porta non crittografata 80 debba essere inoltrata alla porta crittografata SSL 443. Ciò richiede il modulo mod_rewrite. Infine, è necessario mod_headers affinché l'Apache accessibile dall'esterno e configurato come proxy inverso inoltri le intestazioni delle richieste all'istanza Apache del sito.

Puoi visualizzare i moduli Apache attualmente installati con il comando apachectl. Le vecchie versioni di Red Hat Enterprise Linux (RHEL) e CentOS potrebbero invece richiedere httpd. Usa grep per checkare immediatamente se tutti e tre i moduli richiesti sono presenti:

root@linux# apachectl -M | grep -E 'headers|rewrite|ssl'
 headers_module (shared)
 rewrite_module (shared)
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

L'attivazione dei moduli mancanti può essere effettuata sulla maggior parte delle distribuzioni con lo script a2enmod. Questo script crea soft links nella cartella /etc/apache2/mods-enabled. Il file con estensione .load contiene le istruzioni per caricare il modulo, mentre il file .conf contiene la configurazione effettiva del modulo:

root@linux# a2enmod ssl
Enabling module ssl.
To activate the new configuration, you need to run:
  systemctl restart apache2
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Per le versioni precedenti di RHEL e le distribuzioni basate su di essa, mod_ssl è un pacchetto dedicato che deve essere installato separatamente:

root@linux# yum install -y httpd mod_ssl
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se il comando a2enmod non è disponibile, stai lavorando con una distribuzione che conserva la configurazione di Apache in un unico file di configurazione invece di suddividerla in directory e molti file singoli. In tal caso, la riga commentata LoadModule ssl_module […​] nel file di configurazione /etc/httpd/conf/httpd.conf deve essere privata di #. Procedi allo stesso modo per gli altri due moduli.

La possibilità di riavviare il server web Apache subito o in un secondo momento dipende dal fatto che, al momento dell'installazione di Apache, siano stati generati automaticamente dei certificati semplici self-signed.

Puoi verificarlo cercando prima il file di configurazione che contiene i percorsi dei file relativi al certificato e alle chiavi, quindi checkando se questi file esistono (per RHEL, specifica /etc/httpd come directory di partenza per la ricerca):

root@linux# find /etc/apache2/ -type f -exec grep -Hn '^\s*SSLCertificate.*File' {} \;
/etc/apache2/sites-available/default-ssl.conf:32: SSLCertificateFile	/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/apache2/sites-available/default-ssl.conf:33: SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Verifica se i file specificati nel file di configurazione sono presenti. Se non esiste alcun certificato creato automaticamente, attendi di aver ricevuto o creato tu stesso un certificato prima di riavviare il server web Apache — altrimenti il riavvio fallirà.

Se il certificato e la chiave esistono, riavvia il server web Apache, nel caso di systemd, che ora viene utilizzato di default, utilizzando il seguente comando:

root@linux# systemctl restart apache2
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Anche in questo caso, alcune distribuzioni non utilizzano apache2 come nome del servizio, ma il nome un po' più generico httpd. In questo caso, modifica il comando.

Nota: nel dispositivo Checkmk, abilita HTTPS tramite l'interfaccia web!

3. Ottenere i certificati

In sostanza, sono disponibili i seguenti metodi per ottenere un certificato per il server:

  • Utilizzi un fornitore di servizi esterno per l'emissione del certificato tramite CSR (Certificate Signing Request), il cui certificato radice è considerato attendibile dai produttori di browser e sistemi operativi. Con questa procedura, i certificati possono essere convalidati non solo a livello di dominio, ma anche a livello di organizzazione (Organization Validation) e a livelli superiori (Extended Validation), come richiesto in alcuni settori di attività per motivi normativi. Maggiori informazioni su queste opzioni sono disponibili nella sezione Livelli di convalida.

  • Utilizzi certificati gratuiti di Let’s Encrypt. Questo metodo consente solo la convalida al livello di dominio. Per poter richiedere i certificati, il server da proteggere deve essere accessibile dall’esterno oppure devi essere in grado di creare voci (automatizzate) nel DNS pubblico del dominio utilizzato.

  • Diventi la tua Autorità di Certificazione (CA) e generi i tuoi certificati. Il certificato root della tua CA deve essere presente su tutte le macchine che comunicano con i server che utilizzano certificati firmati con la chiave della CA. Quando si ha a che fare con la propria CA, è necessario mantenere elevati standard di sicurezza, poiché questa CA può essere utilizzata per emettere certificati per qualsiasi dominio.

3.1. Utilizzo di CA esterne

Per molto tempo, avere certificati firmati da un'autorità di certificazione commerciale era l'unico modo per ottenere certificati accettati da tutti i browser e sistemi operativi. Questa procedura è ancora comune oggi, specialmente quando si desiderano lunghi periodi di validità.

La procedura prevede che tu generi prima la chiave privata del server e poi crei una richiesta di firma del certificato (CSR) per essa, che trasferisci al provider selezionato. Il provider verifica quindi la proprietà del dominio, conferma la CSR con la sua chiave e ti invia il certificato del server risultante.

Indipendentemente dagli esempi riportati di seguito, assicurati di seguire le linee guida della tua autorità di certificazione e di modificare i comandi di conseguenza.

Generazione della chiave e della CSR

Per prima cosa, genera la chiave privata del server. Puoi eseguire questo passaggio direttamente sul server in cui si trova l'istanza Checkmk da proteggere.

La cartella /etc/certs utilizzata è quella predefinita per molte distribuzioni. Tuttavia, puoi utilizzare qualsiasi cartella a cui il processo Apache abbia accesso in lettura. Assegnare alla chiave il nome del dominio principale per cui viene utilizzata (in questo caso checkmk.mydomain.com) offre una migliore panoramica in questo contesto. Soprattutto se in seguito vengono aggiunti ulteriori nomi di server, per i quali vengono utilizzate chiavi/certificati propri, questo schema di denominazione facilita l’assegnazione.

La chiave privata viene successivamente utilizzata per crittografare il traffico dati e deve essere gestita con la dovuta attenzione (ad esempio, per quanto riguarda i diritti di accesso). Per poter riavviare automaticamente il server Apache, la maggior parte degli amministratori non assegna una passphrase.

root@linux# openssl genrsa -out /etc/certs/checkmk.mydomain.com.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
.....++
...............................................................++
e is 65537 (0x010001)
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Nel passaggio successivo, creerai la Certificate Signing Request (CSR) — una richiesta digitale per la creazione di un certificato di identità (in questo caso: un certificato a chiave pubblica):

root@linux# openssl req -new -key checkmk.mydomain.com.key -out checkmk.mydomain.com.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
---
Country Name (2 letter code) [AU]: DE
State or Province Name (full name) [Some-State]: Bavaria
Locality Name (eg, city) []: Munich
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Yoyodyne Inc.
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []: checkmk.mydomain.com
Email Address []: webmaster@mydomain.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Assicurati di inserire correttamente i dati dell'azienda e di inserire il nome del server come Common Name. L'Email Addresse deve trovarsi nello stesso dominio e appartenere a una casella di posta esistente che viene letta attivamente.

Creazione di un file di estensione

I browser moderni richiedono certificati che utilizzino l'estensione per nomi host alternativi, anche se i certificati sono emessi per un solo nome host. Ciò richiede un file di estensione, che alcuni provider creano e integrano automaticamente. Se così non fosse o se non ne sei sicuro, crea un file di questo tipo. Se un certificato deve essere valido per più nomi host, aggiungi ulteriori righe dopo [alt_names], DNS.2 = e così via, secondo necessità:

/tmp/Checkmk.mydomain.com.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = checkmk.mydomain.com

Invio della documentazione

A seconda del livello di convalida richiesto, potrebbe essere necessario compilare ulteriori documenti come estratti del registro delle imprese o dati bancari. Poiché i documenti richiesti, le modalità di invio e le modalità di conferma variano da provider a provider, non è possibile fornire qui indicazioni generali. Ad esempio, la convalida estesa (Extended Validation) può anche significare che un codice viene inviato tramite raccomandata all’amministratore delegato o a un firmatario autorizzato, che deve poi inserire il codice tramite un’interfaccia web.

Nel caso più semplice di una convalida solo al livello di dominio, il file CSR e, se del caso, il file EXT vengono caricati tramite un'interfaccia web. Ti viene quindi data la possibilità di selezionare un indirizzo e-mail: tra quelli memorizzati per l'Admin-C (proprietario del dominio) o per il Tech-C (responsabile tecnico del dominio), oppure un indirizzo e-mail generico come webmaster@domain.com. A questo indirizzo verrà quindi inviato un link di conferma.

Ricezione del certificato

Il processo di convalida richiede solitamente al massimo pochi minuti per la convalida al livello di dominio, oppure può talvolta richiedere diversi giorni per una convalida estesa. Una volta completato questo processo, riceverai il certificato associato alla tua chiave via e-mail o tramite scaricamento. Oltre al certificato, riceverai anche un link per scaricare il file della catena di certificati. Assicurati di salvare anche questo file.

3.2. Let’s Encrypt

Se è possibile accedere al server da remoto o se hai accesso al server dei nomi, puoi far generare i certificati automaticamente tramite il provider di servizi senza scopo di lucro Let’s Encrypt, che appartiene alla Electronic Frontier Foundation (EFF). Non ci sono costi. I certificati convalidati tramite DNS richiedono qualche minuto di attenzione ogni 90 giorni, mentre quelli convalidati tramite directory del server possono essere rigenerati automaticamente per anni.

Per i certificati Let’s Encrypt, l’EFF fornisce Certbot, un programma Python disponibile in vari formati di pacchetto. Certbot crea la chiave, invia la CSR, verifica la proprietà del server o del dominio e infine effettua lo scaricamento del certificato. Certbot comunica con i server dell’EFF tramite il protocollo ACME (Automatic Certificate Management Environment).

Installazione dello script Certbot

Ci sono tre modi per installare Certbot. La scelta dipende principalmente dall'età della distribuzione che stai usando e dalla policy della tua organizzazione sull'installazione di pacchetti da fonti terze:

  • Se il gestore di pacchetti della tua distribuzione Linux fornisce Certbot versione 1.10 o superiore, puoi utilizzare questa versione di Certbot.

  • L'EFF preferisce l'installazione da un'immagine snap, come indicato nella loro pagina di documentazione su Certbot. Si applicano i vantaggi e gli svantaggi noti del formato del pacchetto snap.

  • Certbot può essere installato tramite lo strumento di installazione dei pacchetti Python pip dal Python Package Index. Per prima cosa crea un ambiente virtuale Python (venv) per evitare di danneggiare i moduli Python forniti dalla distribuzione. Nell'ambiente virtuale, esegui il comando pip install certbot per installare Certbot e tutte le dipendenze necessarie.

Configurazione completamente automatizzata

Se il server Checkmk è accessibile da internet e non hai apportato alcuna modifica alla configurazione del server web Apache di sistema dall'installazione di Checkmk, puoi utilizzare la funzione "Apache automatism" di Certbot. In questo modo puoi generare chiavi, richiedere certificati, modificare automaticamente la configurazione di Apache e infine impostare un cronjob per effettuare il rinnovo periodico dei certificati validi per un massimo di 90 giorni, prima della loro scadenza.

root@linux# certbot --apache
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Lo script ora richiederà in modo interattivo alcune informazioni relative ai dati di contatto (indirizzo e-mail per ulteriori informazioni, come eventuali richiami di certificati) e ai percorsi di installazione. Una volta terminato lo script, avrai una configurazione SSL funzionante. Non è necessaria alcuna modifica al file di configurazione di mod_ssl, poiché questa operazione è già stata eseguita da Certbot.

Configurazione semi-automatica

Se stai richiedendo certificati, come descritto nella sezione precedente, ma vuoi personalizzare tu stesso la configurazione di Apache, usa il comando:

root@linux# certbot certonly --apache
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Puoi quindi completare la configurazione come descritto di seguito nel file di configurazione per mod_ssl.

Altre opzioni

Ad esempio, se il server Checkmk è accessibile solo dall'intranet o tramite VPN, ma il server DNS è pubblico, puoi effettuare la convalida tramite una sfida DNS. In questo caso, la proprietà di un dominio non viene checkata per poter caricare file sul server web, ma per poter aggiungere voci nel DNS. Non si tratta di voci che risolvono un nome host in un indirizzo IP, ma delle cosiddette voci TXT, che possono contenere qualsiasi stringa di caratteri. Le voci TXT vengono utilizzate, ad esempio, anche per specificare quali server sono autorizzati a inviare e-mail per un dominio.

Le DNS Challenge possono essere eseguite manualmente, il che di solito è pratico solo per singoli sistemi di test con validità di 90 giorni. Se il tuo provider DNS dispone di un'API supportata da Let’s Encrypt, è possibile eseguire anche un rinnovo automatico. A tal fine, leggi la panoramica dei tipi di Challenge su Let’s Encrypt.

3.3. Utilizzo di CA interne

Puoi assumere il ruolo di Autorità di Certificazione (CA) ed emettere certificati per qualsiasi dominio (i tuoi domini, domini esterni e domini di fantasia). Il percorso tramite la tua CA è particolarmente utile per ambienti di test o server Checkmk isolati con un numero gestibile di utenti. Questo è anche l’unico modo per ottenere certificati se utilizzi internamente uno dei cinque domini di primo livello (TLD) riservati: .example, .invalid, .local, .localhost o .test. Non esistono registrar per questi domini, di conseguenza non è possibile verificarne la proprietà.

Questo capitolo spiega come emettere certificati con una CA interna di questo tipo. Si presume che tu disponga già della chiave privata della CA root o della CA intermedia e che ora intenda utilizzarla per emettere certificati per proteggere un server Checkmk.

La creazione delle chiavi CA, del certificato CA e del file di configurazione associato non è inclusa in questo tutorial.

Generazione della chiave e del CSR

Per creare la chiave del server, la richiesta di firma del certificato (CSR) e il file di estensione, procedi come descritto nella sezione sull'emissione di certificati tramite una CA commerciale. La procedura e i file richiesti sono identici.

Firma della CSR

Per firmare i certificati autonomamente, hai bisogno almeno di una chiave privata (in questo caso intermediate.key.pem) e del certificato intermedio corrispondente intermediate.pem. Se disponi anche di un file di configurazione, il percorso deve essere specificato con il parametro --config.

La firma basata sul file CSR checkmk.mydomain.com.csr, sul file di estensione checkmk.mydomain.com.ext e sul file di output checkmk.mydomain.com.crt viene quindi eseguita con il seguente comando:

user@host:~$ openssl x509 -CAcreateserial -req \
    -in checkmk.mydomain.com.csr \
    -CA intermediate.pem -CAkey intermediate.key.pem \
    -out checkmk.mydomain.com.crt -days 365 \
    -sha256 -extfile checkmk.mydomain.com.ext
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Oltre al certificato del server checkmk.mydomain.com.crt creato qui, devi anche trasmettere il tuo certificato CA intermediate.pem. Se non sei una CA radice, devi anche inoltrare il certificato radice (indicato come ca_certificate_internal.pem nel resto del testo).

Importazione del certificato

Le opzioni per importare un certificato CA come attendibile variano da browser a browser. Di solito è sufficiente aggiungere il certificato ca_certificate_internal.pem sotto Settings > Privacy e Security > Certificates > Import.

Affinché la gestione dei certificati non costituisca un ostacolo quando gli agenti vengono aggiornati automaticamente nelle edizioni commerciali, in agent bakery abbiamo previsto la possibilità di specificare un certificato CA proprio, utilizzato esclusivamente per gli aggiornamenti degli agenti. In questo caso i certificati di sistema non vengono modificati e gli aggiornamenti degli agenti sono comunque possibili.

In alternativa alla distribuzione tramite gli aggiornamenti degli agenti, puoi integrare il certificato radice nel database CA locale dell’host. Per farlo, copia il file ca_certificate_internal.pem in /usr/local/share/ca-certificates/, quindi rigenera la cache:

root@linux# update-ca-certificates
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Su Windows è possibile gestire i certificati di sistema tramite lo snap-in MMC "Certificati". Ciò è necessario, ad esempio, se desideri utilizzare un browser Microsoft per accedere a un Checkmk protetto con la propria CA. Puoi leggere la procedura esatta nell'articolo della Knowledge Base Microsoft PKI. In alternativa, puoi distribuire i certificati tramite Intune.

4. Configurazione della connessione HTTPS per un'istanza

Per prima cosa, devi specificare i percorsi corretti dei file relativi alla chiave, al certificato e al certificato intermedio nel file di configurazione SSL. Tieni presente che si tratta di configurazioni per il server web apache2 e non sono specifiche di Checkmk. Pertanto, il file di configurazione utilizzato sui sistemi basati su Debian è solitamente quello predefinito /etc/apache2/sites-enabled/default-ssl.conf , tuttavia il percorso del file potrebbe essere diverso sulle distribuzioni più vecchie.

Nell'esempio qui sotto, SSLCertificateKeyFile indica la chiave privata generata durante la configurazione iniziale di questo server. SSLCertificateChainFile contiene il certificato intermedio o, se applicabile, una concatenazione di certificati intermedi dipendenti. Questo viene omesso solo per una CA interna in cui la chiave CA viene utilizzata direttamente per la firma.

Molti fornitori commerciali utilizzano nomi di file piuttosto generici, quindi se li adotti la configurazione sarà simile alla seguente:

/etc/apache2/sites-enabled/default-ssl.conf
SSLEngine on
SSLCertificateKeyFile /etc/certs/checkmk.mydomain.com.key
SSLCertificateChainFile /etc/certs/ca_bundle.crt
SSLCertificateFile /etc/certs/certificate.crt
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se hai usato Let’s Encrypt per generare i certificati ma vuoi aggiornare la configurazione manualmente, individua i percorsi dei file memorizzati in /etc/letsencrypt/live e inseriscili:

/etc/apache2/sites-enabled/default-ssl.conf
SSLEngine on
SSLCertificateKeyFile /etc/letsencrypt/live/checkmk.mydomain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/checkmk.mydomain.com/chain.pem
SSLCertificateFile /etc/letsencrypt/live/checkmk.mydomain.com/cert.pem
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

4.1. Aggiunta dell'inoltro HTTPS

Apache utilizza gli host virtuali per fornire contenuti per molti nomi host sotto un unico indirizzo IP. Se nel contesto di Apache si usa il termine "istanza", si intende proprio un host virtuale, non un'istanza Checkmk. Su un server Checkmk dedicato, di solito si usa un solo host virtuale con un nome server, sotto il quale è poi possibile raggiungere tutte le istanze Checkmk. La configurazione dell'VirtualHoste si trova in uno dei seguenti file, a seconda della distribuzione utilizzata:

Debian, Ubuntu

/etc/apache2/sites-enabled/000-default(.conf)

RHEL, CentOS

/etc/httpd/conf.d/ssl.conf

SLES

/etc/apache2/httpd.conf

L'esempio seguente presuppone che tu utilizzi un unico file di configurazione per le connessioni non crittografate sulla porta 80 e quelle crittografate sulla 443. In questo caso, aggiungi le seguenti righe alla sezione VirtualHost:

/etc/apache2/sites-enabled/000-default
RewriteEngine On
# Never forward request for .well-known (important when using Let's Encrypt)
RewriteCond %{REQUEST_URI} !^/.well-known
# Next 2 lines: Force redirection if incoming request is not on 443
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}$1 [L]
# This section passes the system Apaches connection mode to the
# instance Apache. Make sure mod_headers is enabled, otherwise it
# will be ignored and "Analyze configuration" will issue "WARN".
<IfModule headers_module>
    RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}
    RequestHeader set X-Forwarded-SSL expr=%{HTTPS}
</IfModule>
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Le due righe RequestHeader set X-Forwarded…​ qui presenti assicurano che l'istanza Apache sulla porta 5000 venga informata che è stata effettuata una chiamata tramite SSL, confermando che le regole di sicurezza sono state rispettate.

Dopo aver modificato la configurazione, devi riavviare il server web:

root@linux# systemctl restart apache2
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Anche in questo caso, alcune distribuzioni non utilizzano apache2 come nome del servizio, ma il più generico httpd. In tal caso, basta modificare il comando.

5. Opzioni aggiuntive

5.1. Configurazione di HSTS

Rendere il server Checkmk accessibile solo tramite HTTPS è il primo e più importante passo per proteggere le connessioni al monitoraggio. Puoi però aumentare ulteriormente la sicurezza con impostazioni aggiuntive e opzionali. Ad esempio, il server web può comunicare al browser web che in futuro sarà accessibile solo tramite HTTPS e che una connessione non protetta tramite HTTP verrà sempre rifiutata.

Questa tecnica si chiama "HTTP Strict Transport Security" (HSTS) ed è definita per un determinato periodo di tempo in secondi. Una volta scaduto questo periodo, il browser verifica nuovamente se la limitazione tramite HSTS è ancora valida.

Caratteristiche di HSTS

Configurare l'HSTS non solo ha il vantaggio di garantire che si possano utilizzare solo connessioni sicure, ma il suo utilizzo comporta anche alcune condizioni di cui bisogna essere consapevoli prima di effettuare il switch:

  • Una volta che la voce HSTS è stata creata dal browser dell'utente, può essere rimossa — almeno prima della scadenza del tempo specificato — solo con una conoscenza approfondita del browser in questione. Tieni presente che questo non vale per molti utenti.

  • La connessione verrà rifiutata se, tra le altre cose, il certificato è scaduto o è stato sostituito da un self-signed. Tali pagine non possono essere aggirate nemmeno con un'eccezione per l'affidabilità temporanea di un certificato.

  • Al contrario, l'HSTS viene preso in considerazione solo se il certificato è considerato attendibile al momento della prima connessione. In caso contrario, il browser non crea una voce per l'HSTS, quindi il meccanismo di protezione aggiuntivo non viene utilizzato.

Configurazione del server web Apache

Per impostare l'opzione, aggiungi la seguente voce alla configurazione HTTPS. Su Debian/Ubuntu, di default si tratta del file default-ssl.conf:

/etc/apache2/sites-enabled/default-ssl.conf
Header always set Strict-Transport-Security "max-age=43200"
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Importante: imposta prima un periodo di tempo breve — ad es. 600 secondi — per testare l'impostazione, altrimenti la connessione potrebbe essere rifiutata in modo permanente in caso di errore! Maggiori informazioni su questo argomento nelle Funzioni speciali qui sotto.

Per verificare se la nuova impostazione funziona, puoi utilizzare il programma curl per interrogare il server. In questo esempio vengono mostrate solo le prime 4 righe dell'output:

root@linux# curl -I \https://mycmkserver/mysite/check_mk/login.py
HTTP/1.1 200 OK
Date: Tue, 01 Jun 2021 09:30:20 GMT
Server: Apache
Strict-Transport-Security: max-age=3600
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Last modified: Tue, 04 Nov 2025 13:59:29 GMT via commit c144707b3
In questa pagina