Questa guida mostra come installare un certificato SSL/TLS su Pound, il leggero reverse proxy HTTP/HTTPS. Copre la parte che manda in confusione la maggior parte degli operatori: costruire l’unico file PEM combinato che Pound si aspetta, nell’ordine corretto, e poi scrivere un blocco ListenHTTPS funzionante che disabilita i protocolli obsoleti, punta Pound verso un backend e supera un controllo della configurazione prima di riavviare il servizio.
Una breve nota su quale versione di Pound riguarda questa guida. Il progetto originale Apsis Pound è stato interrotto nel settembre 2022. Lo sviluppo attivo si è spostato sul fork mantenuto da Sergey Poznyakoff su github.com/graygnuorg/pound, che è ora il riferimento upstream ufficiale e la versione confezionata dalle attuali distribuzioni Linux. Le direttive riportate di seguito corrispondono alla moderna serie 4.x.
Genera la CSR per Pound
Se hai già generato la tua CSR e hai in mano i file del certificato emesso, passa direttamente a Installa il certificato SSL su Pound.
Prima che un’Autorità di Certificazione possa emettere il tuo certificato, devi inviare una CSR (Certificate Signing Request): un piccolo blocco di testo che contiene i dettagli del tuo dominio e una chiave pubblica, abbinata a una chiave privata che resta sul server. Hai due opzioni:
- Genera la CSR automaticamente con il nostro CSR Generator. Lo strumento restituisce sia la CSR che la chiave privata corrispondente, che dovrai poi trasferire sul server.
- Genera la CSR direttamente sul server con OpenSSL seguendo il nostro tutorial su come generare una CSR su Pound. La chiave privata resta sul server.
Quando richiedi il certificato, incolla l’intero blocco della CSR, incluse le righe —–BEGIN CERTIFICATE REQUEST—– e —–END CERTIFICATE REQUEST—–. Se vuoi verificare il contenuto della CSR prima di inviarla, incollala nel nostro decoder CSR. Conserva il file della chiave privata corrispondente (di solito yourdomain.key) in un luogo sicuro, leggibile solo da root; ti servirà durante l’installazione.
Installa il certificato SSL su Pound
Una volta che la CA ha emesso il certificato, riceverai in genere:
- Il tuo certificato primario (server), di solito un file .crt o .pem con nome corrispondente al tuo dominio.
- Uno o più certificati intermedi, come file separati oppure raggruppati in un unico file .ca-bundle.
- La chiave privata (un file .key) generata insieme alla tua CSR.
Pound si aspetta un unico file PEM che contenga il certificato, la catena intermedia e la chiave privata non cifrata. Il manuale di graygnuorg è chiaro sull’ordine: certificato, poi certificati intermedi (se presenti), poi la chiave privata, in questo ordine. Saltare la catena è l’errore di installazione più comune: il certificato appare corretto in un browser desktop ma non funziona su Android, su iOS e nei client a riga di comando.
Passo 1: Costruisci il file PEM combinato
Questa guida presuppone che i file del certificato si trovino in /etc/pound/. Adatta i percorsi alla tua struttura. Concatena i tre file in un unico file PEM. Il pattern pipe-verso-tee riportato di seguito esegue il reindirizzamento con privilegi di root, cosa necessaria perché /etc/pound/ è di solito scrivibile solo da root (un semplice sudo cat … > /etc/pound/… fallirebbe, poiché la shell apre il file di output come il tuo utente normale prima che sudo venga eseguito):
cat your_domain.crt intermediate.crt your_domain.key | sudo tee /etc/pound/your_domain.pem > /dev/null
Se la CA ha fornito gli intermedi come un unico file .ca-bundle, usa quello invece:
cat your_domain.crt your_domain.ca-bundle your_domain.key | sudo tee /etc/pound/your_domain.pem > /dev/null
Sostituisci i nomi dei file con i tuoi. La chiave privata all’interno del file combinato deve essere non cifrata, poiché Pound si avvia in modo non interattivo e non può richiedere una passphrase. Blocca l’accesso al file risultante in modo che solo root possa leggerlo:
sudo chown root:root /etc/pound/your_domain.pem
sudo chmod 600 /etc/pound/your_domain.pem
Passo 2: Modifica pound.cfg
Apri il file di configurazione di Pound (di solito /etc/pound/pound.cfg su Debian e Ubuntu, oppure /etc/pound.cfg su altre distribuzioni) e aggiungi un blocco ListenHTTPS che punti al file PEM combinato. Un blocco minimo e moderno è simile a questo:
ListenHTTPS
Address 0.0.0.0
Port 443
Cert "/etc/pound/your_domain.pem"
# Modern TLS only: disables SSLv2, SSLv3, TLSv1.0 and TLSv1.1,
# leaving TLSv1.2 and TLSv1.3 enabled.
Disable TLSv1_1
Ciphers "ECDHE+AESGCM:ECDHE+CHACHA20:!aNULL:!MD5:!DSS"
Service
Backend
Address 127.0.0.1
Port 8080
End
End
End
Alcune note sulle direttive riportate sopra:
- Cert fornisce il file PEM combinato costruito nel Passo 1. Il manuale specifica chiaramente che Cert deve precedere tutte le altre direttive specifiche per SSL all’interno del listener, quindi mantienilo in cima al blocco.
- Disable disattiva il protocollo indicato e tutti i protocolli più vecchi di esso. Disable TLSv1_1 disabilita quindi SSLv2, SSLv3, TLSv1.0 e TLSv1.1, lasciando attivi TLSv1.2 e TLSv1.3, in linea con le attuali raccomandazioni del settore.
- Ciphers imposta l’elenco di cifrari OpenSSL (usato per TLS 1.2; TLS 1.3 negozia le proprie suite di cifratura). L’elenco riportato sopra limita il proxy alle moderne suite ECDHE con AEAD; se hai bisogno di supportare client più vecchi, sostituisci con il profilo “intermediate” di Mozilla disponibile su ssl-config.mozilla.org.
- Service / Backend è il punto in cui Pound instrada il traffico decifrato. L’esempio lo indirizza a un unico backend sull’interfaccia di loopback (porta 8080); sostituisci l’indirizzo e la porta con quelli su cui è in ascolto la tua applicazione, e aggiungi altri blocchi Backend se vuoi che Pound effettui il bilanciamento del carico.
Se vuoi anche che Pound accetti il normale HTTP e lo instradi (di solito solo per il reindirizzamento a HTTPS, vedi Passo 4), aggiungi un blocco ListenHTTP separato nello stesso file.
Passo 3: Verifica la configurazione e riavvia Pound
Prima di ricaricare il servizio, convalida il file di configurazione affinché un errore di digitazione non possa mettere fuori linea il proxy. Pound dispone di una modalità di controllo integrata:
sudo pound -c -f /etc/pound/pound.cfg
Termina con stato 0 e non stampa nulla in caso di successo, oppure con stato 1 e un messaggio di errore con file e riga in caso di fallimento. Aggiungi -v se vuoi una conferma esplicita di “configuration OK”. Quando il controllo passa, riavvia Pound in modo che recepisca il nuovo listener:
sudo systemctl restart pound
Sui sistemi senza systemd, usa invece il vecchio script init:
sudo /etc/init.d/pound restart
Conferma che il servizio sia in esecuzione e in ascolto sulla porta 443:
sudo systemctl status pound
sudo ss -tlnp | grep ':443'
Passo 4 (consigliato): Reindirizza HTTP a HTTPS
Per assicurarti che i visitatori che digitano il dominio senza protocollo arrivino sull’URL sicuro, aggiungi un listener HTTP semplice che risponde a ogni richiesta con un reindirizzamento permanente verso la versione HTTPS dello stesso percorso:
ListenHTTP
Address 0.0.0.0
Port 80
Service
Redirect 301 "https://example.com$1"
End
End
Sostituisci example.com con il tuo dominio. Il riferimento $1 preserva il percorso originale della richiesta. Esegui nuovamente sudo pound -c -f /etc/pound/pound.cfg, poi riavvia il servizio.
Verifica l’installazione SSL
Apri il tuo sito tramite https:// in un browser e controlla che il lucchetto sia chiuso e che il certificato corrisponda al tuo dominio. Poi esegui una scansione più approfondita con il nostro SSL Checker per ottenere un report immediato sul certificato, sulla catena e sui protocolli e cifrari che Pound offre. Un risultato senza errori significa che i client su ogni piattaforma principale, inclusi mobile e client API, riconosceranno il certificato come attendibile.
Domande Frequenti
Il progetto originale Apsis è stato abbandonato nel 2022. Il fork attivamente mantenuto è graygnuorg/pound di Sergey Poznyakoff, attualmente nella serie 4.x, ed è quello che le principali distribuzioni Linux confezionano come pound. Se stai utilizzando qualcosa della vecchia serie 2.x, pianifica il passaggio a una release attuale: le direttive di configurazione riportate in questa guida presuppongono il fork moderno.
Secondo il manuale di Pound: prima il certificato del server, poi i certificati intermedi (se presenti), poi la chiave privata, tutti codificati in PEM, in quell’unico file. La chiave privata non deve essere protetta da passphrase, perché Pound si avvia come demone e non ha modo di richiederne una.
Usa la direttiva Disable all’interno del blocco ListenHTTPS. La direttiva Disable di Pound disattiva il protocollo indicato e tutti i protocolli più vecchi di esso, quindi Disable TLSv1_1 disabilita SSLv2, SSLv3, TLSv1.0 e TLSv1.1, lasciando solo TLSv1.2 e TLSv1.3. Questa è l’impostazione raccomandata per le nuove implementazioni.
Sì. Pound supporta SNI, quindi puoi dichiarare più istruzioni Cert all’interno dello stesso listener ListenHTTPS (oppure puntare Cert verso una directory di file PEM). Pound scorre i certificati in ordine e serve il primo il cui Common Name o SAN corrisponde al nome host richiesto, quindi elenca i certificati più specifici (nomi host) prima dei wildcard.
Esegui sudo pound -c -f /etc/pound/pound.cfg. Il flag -c controlla il file di configurazione per individuare errori di sintassi e termina senza avviare il proxy; lo stato di uscita 0 significa OK, lo stato 1 significa che c’è un errore (il messaggio indica in quale file e riga). Aggiungi -v per un messaggio esplicito di successo.
A partire dal 15 marzo 2026, i certificati SSL/TLS pubblicamente attendibili avranno una durata massima di 200 giorni, e il CA/Browser Forum ha programmato ulteriori riduzioni (a 100 giorni nel 2027 e 47 giorni nel 2029). Pianifica di ripetere l’installazione sopra descritta ben prima di ogni scadenza, oppure automatizza i rinnovi con ACME.
Risparmia il 10% sui certificati SSL ordinando oggi stesso da SSL Dragon!
Emissione rapida, crittografia avanzata, affidabilità del browser al 99,99%, assistenza dedicata e garanzia di rimborso entro 25 giorni. Codice coupon: SAVE10


