Certificats personnalisés
Depuis la version 2.5, YunoHost intègre la gestion automatisée des certificats Let's Encrypt. Vous pouvez facilement et librement installer un certificat Let's Encrypt. Le document suivant décrit les étapes à suivre pour installer un certificat payant provenant d'une autorité de certification (Gandi, RapidSSL, StartSSL, Cacert).
Certaines modifications ont été apportées, qui ont une incidence sur les procédures indiquées ci-dessous :
- Le groupe Metronome n'est plus utilisé directement, mais ssl-cert.
- Un répertoire
/etc/yunohost/certs/DOMAIN.LTD-history/stampest utilisé pour conserver chaque configuration créée et un lien symbolique est créé.
Ajout d'un certificat signé par une autorité (autre que Let's Encrypt)
Après avoir créé le certificat auprès de votre autorité d'enregistrement, vous devez disposer d'une clé privée, du fichier de clé, et d'un certificat public, du fichier crt.
Notez que le fichier clé est très sensible, il est strictement personnel et doit être très bien sécurisé.
Ces deux fichiers doivent être copiés sur le serveur, s'ils ne s'y trouvent pas déjà.
scp CERTIFICATE.crt admin@DOMAIN.TLD:ssl.crt
scp KEY.key admin@DOMAIN.TLD:ssl.key
Sous Windows, scp peut être utilisé avec Putty, en téléchargeant l'outil pscp.
pscp -P 22 CERTIFICATE.crt admin@DOMAIN.TLD:ssl.crt
pscp -P 22 KEY.key admin@DOMAIN.TLD:ssl.key
Dès que les fichiers sont sur le serveur, le reste du opérations s'effectuera directement sur le serveur. Dans ssh ou localement. Commencez par créer un dossier pour stocker les certificats obtenus.
sudo mkdir /etc/yunohost/certs/DOMAIN.TLD/ae_certs
sudo mv ssl.key ssl.crt /etc/yunohost/certs/DOMAIN.TLD/ae_certs/
Ensuite, allez dans le dossier parent pour continuer.
cd /etc/yunohost/certs/DOMAIN.TLD/
Par mesure de précaution, sauvegardez les certificats d'origine de YunoHost.
sudo mkdir yunohost_self_signed
sudo mv *.pem *.cnf yunohost_self_signed/
Selon l'autorité d'enregistrement, des certificats intermédiaires et racine doivent être obtenus.
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
Les certificats intermédiaires et racine doivent être combinés avec le certificat obtenu afin de créer une chaîne de certificats unifiée.
cat ae_certs/ssl.crt ae_certs/intermediate_ca.pem ae_certs/ca.pem | sudo tee crt.pem
La clé privée doit être convertie au format .pem.
sudo openssl rsa -in ae_certs/ssl.key -out key.pem -outform PEM
Pour vérifier la syntaxe des certificats, vérifiez le contenu des fichiers.
cat crt.pem key.pem
Les certificats et la clé privée doivent ressembler à ceci :
-----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-----
Enfin, sécurisez vos fichiers de certificats.
sudo chown root:ssl-cert crt.pem key.pem
sudo chmod 640 crt.pem key.pem
sudo chown root:root -R ae_certs
sudo chmod 600 -R ae_certs
Les certificats (deux fichiers avec l'extension .pem) doivent maintenant être copiés dans /etc/yunohost/certs/DOMAIN.TLD.
cp ae_certs/*.pem ./
Rechargez la configuration NGINX pour prendre en compte le nouveau certificat.
sudo service nginx reload
Votre certificat est prêt. Cependant, vous pouvez vous assurer qu'il est en place en le testant à l'aide de geocerts.