Certificati personalizzati

Nota: dalla versione 2.5 YunoHost integra la gestione automatizzata dei certificati Let's Encrypt. Potete quindi facilmente e gratuitamente installare un certificato Let's Encrypt. Questa guida descrive la procedura per installare un certificato, a pagamento, di una diversa autorità di certificazione (Gandi, RapidSSL, StartSSL, Cacert).

Nel corso delle versioni, sono state introdotte delle modifiche che possono impattare sulle procedure descritte di seguito:

  • Il gruppo metronome non è più utilizzato direttamente ma viene usato ssl-cert.
  • La directory /etc/yunohost/certs/DOMAIN.LTD-history/stamp viene utilizzata per salvare le configurazioni create e viene creato un link simbolico.

Installazione di un certificato firmato da un'autorità diversa da Let's Encrypt

Dopo aver creato il certificato presso l'autorità di certificazione scelta, sarete in possesso di una chiave privata, il file key e di un certificato pubblico, il file crt.

Attenzione! il file key contiene dati sensibili, è strettamente personale e deve essere conservato in un luogo sicuro.

Questi due file devono essere copiati sul server.

scp CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt
scp CLE.key admin@DOMAIN.TLD:ssl.key

Nelle versioni precedenti Windows 10, per utilizzare scp dovrete installare Putty e il plugin pscp.

pscp -P 22 CERTIFICATE.crt admin@DOMAIN.TLD:ssl.crt
pscp -P 22 KEY.key admin@DOMAIN.TLD:ssl.key

Una volta copiati i file, i passi successivi si faranno sul server via ssh o in locale. Per prima cosa create una directory per salvare i certificati in vostro possesso.

sudo mkdir /etc/yunohost/certs/DOMAIN.TLD/ae_certs
sudo mv ssl.key ssl.crt /etc/yunohost/certs/DOMAIN.TLD/ae_certs/

Spostatevi nella directory superiore

cd /etc/yunohost/certs/DOMAIN.TLD/

Eseguite un backup dei certificati auto firmati di YunoHost.

sudo mkdir yunohost_self_signed
sudo mv *.pem *.cnf yunohost_self_signed/

Per alcune autorità di certificazione, è necessario ottenere di altri certificati (intermediate e root).

StartSSL

sudo wget http://www.startssl.com/certs/ca.pem -O ae_certs/ca.pem
sudo wget http://www.startssl.com/certs/sub.class1.server.ca.pem -O ae_certs/intermediate_ca.pem

Gandi

sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA2.pem -O ae_certs/intermediate_ca.pem

RapidSSL

sudo wget https://knowledge.rapidssl.com/library/VERISIGN/INTERNATIONAL_AFFILIATES/RapidSSL/AR1548/RapidSSLCABundle.txt -O ae_certs/intermediate_ca.pem

Cacert

sudo wget http://www.cacert.org/certs/root.crt -O ae_certs/ca.pem
sudo wget http://www.cacert.org/certs/class3.crt -O ae_certs/intermediate_ca.pem

I certificati intermedi e root devono essere collegati con il certificato "principale" a creare una unica catena di certificati.

cat ae_certs/ssl.crt ae_certs/intermediate_ca.pem ae_certs/ca.pem | sudo tee crt.pem

La chiave privata deve esser convertita nel formato .pem.

sudo openssl rsa -in ae_certs/ssl.key -out key.pem -outform PEM

Controllate la sintassi dei certificati, verificando il contenuto dei file.

cat crt.pem key.pem

I certificati e la chiave privata, devono assomigliare a questo:

-----BEGIN CERTIFICATE-----
MIICVDCCAb0CAQEwDQYJKoZIhvcNAQEEBQAwdDELMAkGA1UEBhMCRlIxFTATBgNV
BAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UEChMDTExC
MREwDwYDVQQLEwhCVFMgSU5GTzEbMBkGA1UEAxMSc2VydmV1ci5idHNpbmZvLmZy
MB4XDTA0MDIwODE2MjQyNloXDTA0MDMwOTE2MjQyNlowcTELMAkGA1UEBhMCRlIx
FTATBgNVBAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UE
ChMDTExCMREwDwYDVQQLEwhCVFMgSU5GTzEYMBYGA1UEAxMPcHJvZi5idHNpbmZv
LmZyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSUagxPSv3LtgDV5sygt12
kSbN/NWP0QUiPlksOkF2NkPfwW/mf55dD1hSndlOM/5kLbSBo5ieE3TgikF0Iktj
BWm5xSqewM5QDYzXFt031DrPX63Fvo+tCKTQoVItdEuJPMahVsXnDyYHeUURRWLW
wc0BzEgFZGGw7wiMF6wt5QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALD640iwKPMf
pqdYtfvmLnA7CiEuao60i/pzVJE2LIXXXbwYjNAM+7Lov+dFT+b5FcOUGqLymSG3
kSK6OOauBHItgiGI7C87u4EJaHDvGIUxHxQQGsUM0SCIIVGK7Lwm+8e9I2X0G2GP
9t/rrbdGzXXOCl3up99naL5XAzCIp6r5
-----END CERTIFICATE-----

Infine mettete al sicuro i file del vostro certificato.

sudo chown root:metronome crt.pem key.pem
sudo chmod 640 crt.pem key.pem
sudo chown root:root -R ae_certs
sudo chmod 600 -R ae_certs

Adesso i certificati (i due files con estensione .pem) devono essere copiati in /etc/yunohost/certs/DOMAIN.TLD.

cp ae_certs/*.pem ./

Ricaricate la configurazione di NGINX per rendere effettive le modifiche effettuate.

sudo service nginx reload

Il certificato è pronto. Potete controllare la corretta configurazione e installazione utilizzando il servizio di geocerts.

Hai trovato degli errori? Pensi di poter migliorare questa documentazione? Simply click the Edit link at the top of the page, and then the icon on Github to suggest changes.