ALLORA... grazie a Let's Encrypt HO FATTO CHIUDERE IL LUCCHETTO!!!!
Sento di essere vicino alla soluzione. Voglio spiegare a tutti i dettagli di
come si crea un certificato valido: più persone sanno come si fa, più persone possono aiutare.
Ci vuole un nome di dominio, io, per esempio, ho usato il servizio gratis su dynu.com
Si usa il programma uacme per interagire con let's encrypt.
Nel sito
https://github.com/ndilieto/uacme/ si scarica latest.tar.gz
si scompatta e si compila. Io uso WSL su windows 10 (ubuntu 21.10) quindi:
SE MANCA pkg-config # apt install pkg-config
SE MANCA libcurl >= 7.38.0 # apt install libcurl4-openssl-dev
SE MANCA gnutls >= 3.3.30 # apt install libgnutls28-dev
SE MANCA a2x # apt install asciidoc
fate il solito $ configure e poi $ make.
Non vi consiglio di fare make install perché ci serve soltanto uacme.
Createvi una cartella pulita e copiate l'eseguibile uacme lì dentro.
Una volta dentro ad una cartella pulita createvi un nuovo account con
$ uacme -v -c . new
Poi iniziate la verifica del dominio per esempio
www.mio.com$ uacme -v -c . issue
www.mio.comadesso uacme vi darà in uscita una stringa TOKEN e una stringa KEY_AUTH
poi
aspetterà che voi settiate il vostro server http in questo modo:
cercherà di trovare un file di testo a questo URL
http://www.mio.com/.well-known/acme-challenge/TOKENe il contenuto del file di testo TOKEN sarà la stringa KEY_AUTH
Quindi NON premete y finché non avete settato il vostro server, altrimenti dovrete
fare un'altra verifica con un nuovo token/key_auth. Quando è tutto a posto premete y
Partirà la verifica e, se viene trovato il file richiesto col contenuto richiesto, questo prova
che siete voi i proprietari del dominio
www.mio.com e come premio avrete:
dentro la cartella
www.mio.com il file
cert.pem (la chiave pubblica firmata)
e dentro la cartella private/www.mio.com il file
key.pem (la chiave privata)
Ora inserire le chiavi in un server è facilissimo:
se avete nginx basta editare /etc/nginx/nginx.conf
e inserire, dopo la
listen 443 ssl; che inizia la sezione https, queste due righe:
ssl_certificate /etc/nginx/
cert.pem;ssl_certificate_key /etc/nginx/
key.pem;mettete le chiavi cert.pem e key.pem in /etc/nginx
Riavviate il server e... magia! il lucchetto si chiude!
P.S. Il certificato ha validità
3 mesi, dopodiché' va rifatto.
Quindi questa soluzione serve a noi, ma è temporanea.
Per rendere automatica la procedura ricorrente di autenticazione,
let's encrypt offre altri metodi (certbot).