doc/certificate_fr.md

123 lines
5.6 KiB
Markdown
Raw Normal View History

2015-02-26 15:36:59 +01:00
# Certificat
2014-06-17 22:16:54 +02:00
2015-02-26 15:36:59 +01:00
Un certificat est utilisé pour garantir la confidentialité des échanges entre votre serveur et votre client.
2014-06-17 22:16:54 +02:00
2015-05-20 15:04:04 +02:00
YunoHost fournit par défaut un certificat **auto-signé**, ce qui veut dire que cest votre serveur qui garantit la validité du certificat. Cest suffisant **pour un usage personnel**, car vous pouvez avoir confiance en votre serveur, en revanche cela posera problème si vous comptez ouvrir laccès à votre serveur à des anonymes, par exemple pour héberger un site web.
2016-03-30 14:32:52 +02:00
En effet, les utilisateurs devront passer par un écran de ce type :
2014-06-18 15:17:41 +02:00
<img src="/images/postinstall_error.png" style="max-width:100%;border-radius: 5px;border: 1px solid rgba(0,0,0,0.15);box-shadow: 0 5px 15px rgba(0,0,0,0.35);">
2014-06-18 15:17:41 +02:00
2016-03-30 14:32:52 +02:00
Cet écran revient à demander **« Avez-vous confiance au serveur qui héberge ce site? »**.
2015-02-26 15:36:59 +01:00
Cela peut effrayer vos utilisateurs (à juste titre).
2014-09-13 13:21:08 +02:00
2016-03-30 14:32:52 +02:00
Pour éviter cette confusion, il est possible dobtenir un certificat signé par une autorité « connue » : **Gandi**, **RapidSSL**, **StartSSL**, **Cacert**.
2015-02-26 15:36:59 +01:00
Dans ce cas, il sagira de remplacer le certificat auto-signé par celui qui a été reconnu par une autorité de certification, et vos utilisateurs nauront plus à passer par cet écran davertissement.
2014-09-12 13:35:01 +02:00
2015-02-26 15:36:59 +01:00
### Ajout dun certificat signé par une autorité
2014-09-12 13:35:01 +02:00
2015-05-20 15:04:04 +02:00
Après création du certificat auprès de votre autorité denregistrement, vous devez être en possession dune clé privée, le fichier key et dun certificat public, le fichier crt.
2015-02-26 15:36:59 +01:00
> Attention, le fichier key est très sensible, il est strictement personnel et doit être très bien sécurisé.
2014-09-12 13:35:01 +02:00
2015-05-20 15:04:04 +02:00
Ces deux fichiers doivent être copiés sur le serveur, sils ne sy trouvent pas déjà.
2014-09-12 13:35:01 +02:00
```bash
2014-10-18 13:09:01 +02:00
scp CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt
scp CLE.key admin@DOMAIN.TLD:ssl.key
2014-09-12 13:35:01 +02:00
```
2015-05-20 15:04:04 +02:00
Depuis Windows, scp est exploitable avec putty, en téléchargeant loutil [pscp](http://the.earth.li/~sgtatham/putty/latest/x86/pscp.exe)
2014-09-12 13:35:01 +02:00
```bash
pscp -P 22 CERTIFICAT.crt admin@DOMAIN.TLD:ssl.crt
pscp -P 22 CLE.key admin@DOMAIN.TLD:ssl.key```
2015-05-20 15:04:04 +02:00
Dès lors que les fichiers sont sur le serveur, le reste du travail se fera sur celui-ci. En [ssh](https://yunohost.org/#/ssh_fr) ou en local.
2014-09-12 13:35:01 +02:00
2015-05-20 15:04:04 +02:00
Tout dabord, créez un dossier pour stocker les certificats obtenus.
2014-09-12 13:35:01 +02:00
```bash
sudo mkdir /etc/yunohost/certs/DOMAIN.TLD/ae_certs
sudo mv ssl.key ssl.crt /etc/yunohost/certs/DOMAIN.TLD/ae_certs/```
2015-02-26 15:36:59 +01:00
Puis allez dans le dossier parent pour poursuivre.
2014-09-12 13:35:01 +02:00
```bash
cd /etc/yunohost/certs/DOMAIN.TLD/```
2015-05-20 15:04:04 +02:00
Faites une sauvegarde des certificats dorigine de yunohost, par précaution.
2014-09-12 13:35:01 +02:00
```bash
sudo mkdir yunohost_self_signed
sudo mv *.pem *.cnf yunohost_self_signed/```
2015-05-20 15:04:04 +02:00
En fonction de lautorité denregistrement, des certificats intermédiaires et racines doivent être obtenus.
2014-09-12 13:35:01 +02:00
> **StartSSL**
> ```bash
> 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**
> ```bash
> sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA.pem -O ae_certs/intermediate_ca.pem```
> Attention si votre certificat expire après le 01/01/2017, choisissez le certificat intermédiaire SHA2 suivant (à la place du certificat SHA1 précédent)
> ```bash
> sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA2.pem -O ae_certs/intermediate_ca.pem```
2014-09-12 13:35:01 +02:00
> **RapidSSL**
> ```bash
> sudo wget https://knowledge.rapidssl.com/library/VERISIGN/INTERNATIONAL_AFFILIATES/RapidSSL/AR1548/RapidSSLCABundle.txt -O ae_certs/intermediate_ca.pem```
2015-02-04 11:32:19 +01:00
> **Cacert**
> ```bash
> 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```
2015-05-20 15:04:04 +02:00
Les certificats intermédiaires et root doivent être réunis avec le certificat obtenu pour créer une chaîne de certificats unifiés.
2014-09-12 13:35:01 +02:00
```bash
cat ae_certs/ssl.crt ae_certs/intermediate_ca.pem ae_certs/ca.pem | sudo tee crt.pem```
2015-02-26 15:36:59 +01:00
La clé privée doit être, elle, convertie au format pem.
2014-09-12 13:35:01 +02:00
```bash
sudo openssl rsa -in ae_certs/ssl.key -out key.pem -outform PEM```
2015-05-20 15:04:04 +02:00
Afin de sassurer de la syntaxe des certificats, vérifiez le contenu des fichiers.
2014-09-12 13:35:01 +02:00
```bash
cat crt.pem key.pem```
2016-03-30 14:32:52 +02:00
Les certificats et la clé privée doivent ressembler à cela :
2014-09-12 13:35:01 +02:00
2014-09-13 13:21:08 +02:00
`-----BEGIN CERTIFICATE-----`
2014-09-12 13:35:01 +02:00
`MIICVDCCAb0CAQEwDQYJKoZIhvcNAQEEBQAwdDELMAkGA1UEBhMCRlIxFTATBgNV`
`BAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UEChMDTExC`
`MREwDwYDVQQLEwhCVFMgSU5GTzEbMBkGA1UEAxMSc2VydmV1ci5idHNpbmZvLmZy`
`MB4XDTA0MDIwODE2MjQyNloXDTA0MDMwOTE2MjQyNlowcTELMAkGA1UEBhMCRlIx`
`FTATBgNVBAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UE`
`ChMDTExCMREwDwYDVQQLEwhCVFMgSU5GTzEYMBYGA1UEAxMPcHJvZi5idHNpbmZv`
`LmZyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSUagxPSv3LtgDV5sygt12`
`kSbN/NWP0QUiPlksOkF2NkPfwW/mf55dD1hSndlOM/5kLbSBo5ieE3TgikF0Iktj`
`BWm5xSqewM5QDYzXFt031DrPX63Fvo+tCKTQoVItdEuJPMahVsXnDyYHeUURRWLW`
`wc0BzEgFZGGw7wiMF6wt5QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALD640iwKPMf`
`pqdYtfvmLnA7CiEuao60i/pzVJE2LIXXXbwYjNAM+7Lov+dFT+b5FcOUGqLymSG3`
2014-09-13 13:21:08 +02:00
`kSK6OOauBHItgiGI7C87u4EJaHDvGIUxHxQQGsUM0SCIIVGK7Lwm+8e9I2X0G2GP`
2014-09-12 13:35:01 +02:00
`9t/rrbdGzXXOCl3up99naL5XAzCIp6r5`
`-----END CERTIFICATE-----`
2015-02-26 15:36:59 +01:00
Enfin, sécurisez les fichiers de votre certificat.
2014-09-12 13:35:01 +02:00
```bash
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```
2015-02-26 15:36:59 +01:00
Rechargez la configuration de nginx pour prendre en compte le nouveau certificat.
2014-09-12 13:35:01 +02:00
```bash
2014-09-13 13:21:08 +02:00
sudo service nginx reload```
2014-09-12 13:35:01 +02:00
2015-05-20 15:04:04 +02:00
Votre certificat est prêt à servir. Vous pouvez toutefois vous assurez de sa mise en place en testant le certificat à laide du service de <a href="https://www.geocerts.com/ssl_checker" target="_blank">geocerts</a>.