• Applications
  • [Discussion] Certificat SSL signé et gratuit avec Let's Encrypt

Merci pour la rapidité
Jedediah wrote:• Les domaines pour lesquels vous souhaitez générer le certificat (en général www.votresite.fr et votresite.fr
On ne peut pas mettre n'importe quoi il me semble. Il est indiquer dans le mail les domaines possibles.

Sinon merci
Merci pour le tuto,

J'ai pas du tous suivis l'affaire, mais y'a t'il une date de sortie de prévu ?
Arthur_ wrote:
Jedediah wrote:• Les domaines pour lesquels vous souhaitez générer le certificat (en général www.votresite.fr et votresite.fr
On ne peut pas mettre n'importe quoi il me semble. Il est indiquer dans le mail les domaines possibles.

Sinon merci 🙂
Je cite le tuto :
Attention : Let's Encrypt est pour le moment en phase de beta fermée. Il faut au préalable s'inscrire à cette beta avant de voir son nom de domaine white-listé pour la génération de certificat.
Si m'es souvenir sont bon lors de "l'inscription" a la beta tu rentre juste ton nom de domaine. ex : domaine.fr

Dans le mail qu'il t'envoie il est écrit : "your whitelisted domaines are: www.domaine.fr / domaine.fr"
Donc pour moi tu n'a pas le choix. Tu ne peut donc pas faire webmail.domaine.fr
Oui c'est exactement ce que je veux dire par la phrase extraite du tuto.
Hello a la sortie de la version stable/finale de Let's Encrypt on aura le droit de demander un certificat wildcard genre : *.domaine.tld
Ou il faudra un certificat différent pour chaque sous domaine ?
En tout cas vivement ça sortie officielle qu'on puisse tous en profiter
Oxynux wrote:Hello a la sortie de la version stable/finale de Let's Encrypt on aura le droit de demander un certificat wildcard genre : *.domaine.tld
Ou il faudra un certificat différent pour chaque sous domaine ?
Il n'y a pas de wilcard de prévu pour l'instant et je crois que c'est pas au programme donc génération de certif pour chaque sous domaine.
Ex.
Pas forcément, il est prévu que les certificats soient valables pour du multi-domaines, ce qui reste intéressant.
Hello,

Je me suis inscris sur vos bons conseils il y a de ca quelques jours, et j'ai recu mon invit' tout à l'heure.

Je m'atèle à ca dès que mon Exchange du taff arrête de faire des siennes
Heps petite erreur à au debut lors de l'install, comment puis-je fix ca ? (Je suis toujours sous Wheezy)

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libtinfo5 : Breaks: dialog (< 1.2-20130523) but 1.1-20120215-2 is to be installed
 php5-cli : Depends: libedit2 (>= 2.11-20080614-4) but it is not going to be installed
 php5-common : Depends: psmisc (>= 22.15-1~) but it is not going to be installed
 procps : Depends: libncurses5 (>= 5.5-5~) but it is not going to be installed
 python-dev : Depends: python (= 2.7.3-4+deb7u1) but 2.7.9-1 is to be installed
              Depends: python2.7-dev (>= 2.7.3-1~) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Failed to install a working "virtualenv" command, exiting
Je me suis fais avoir comme un bleu !

J'avais bien une entrée DNS du type www.mon-domaine.tld, mais pas d'entrée mon-domaine.tld, résultat :
Failed authorization procedure. domain.tld (tls-sni-01): unknownHost :: The server could not resolve a domain name :: No IPv4 
addresses found for domain.tld

IMPORTANT NOTES:
 - The following 'unknownHost' errors were reported by the server:

   Domains: domain.tld
   Error: The server could not resolve a domain name

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A record(s) for that domain
   contain(s) the right IP address.
J'ai ajouté l'entrée qu'il me manquait, sauf que voila, à cause du cache DNS :



Je l'ai dans le baba ! Plus qu'a attendre que leur DNS se "mettent à jour" ..

winz > un
apt-get update && apt-get upgrade
donne quoi ?
winz > un
apt-get update && apt-get upgrade
J'ai tenté ca ainsi qu'un apt-get dist-upgrade, mais sans résultat
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Tu peu tenter un :
apt-get clean && apt-get autoclean
apt-get -f install
dpkg --configure -a
Tu n'aurais pas modifié ton fichier sources (/etc/apt/sources.list) ? Ta distrib c'est une wheezy ou jessie ?
Les commandes n'ont eu aucun effet :'(

Si je l'ai modifié récemment pour installer youtube-dl ou un truc du genre Fallait pas ^^ ? (Wheezy)
deb http://debian.mirrors.ovh.net/debian/ wheezy main
deb-src http://debian.mirrors.ovh.net/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
Je devrais peut etre faire un post dédié a mon probleme 😛 ?
Merci à toi de ce tutoriel même si je connaissais déjà
Je m'en sors pas avec mon erreur Ca m'ennuie de pas pouvoir tenter la beta... Personne qui aurait une idée ?
8 jours plus tard
La beta fermée est quasiment terminée, le beta ouverte est prévue début décembre.
5 jours plus tard
Question peut-être bête mais je ne suis pas super calé niveau certificats.

Les certificats Let's Encrypt, qui sont reconnus par tout les navigateurs, le sont aussi implicitement par les autres applications ? Je pense au tutoriel mail (postfix + dovecot etc..), on peu utiliser le certificat let's encrypt ?
J'en utilise un et je n'ai pas de probleme de mail particulier.
Ils sont toujours accepté partout en boite de reception (yahoo, gmail, ect..) sauf comme d'hab pour moi ils sont en spam chez hotmail.

Rien de bien différent par rapport à avant donc.
Ca se trouve j'ai plein de probleme et j'en sais rien 😛
@coom & @spider1163: il n'y a aucune différence entre un certificat utilisé pour un serveur de mail et un serveur web (en tout cas, dans le cas de LE, les flags sont bons pour les deux usages), donc let's encrypt peut être utilisé pour sécuriser des échanges mails sans soucis.
FAQ wrote:Will Let’s Encrypt issue certificates for anything other than SSL/TLS for websites?

Let’s Encrypt certificates will be standard Domain Validation certificates, so you can use them for any server that uses a domain name, like web servers.
Donc implicitement ils disent que leurs certificats fonctionnent pour d'autres usages que du web, par exemple du mail, messagerie xmpp...etc
Can I use certificates from Let’s Encrypt for code signing or email encryption?

No. Email encryption and code signing require a different type of certificate than Let’s Encrypt will be issuing.
La FAQ dit autre chose, leurs certificats ne peuvent pas être utilisés pour signer du code (avec une infrastructure PKI par exemple), et pour chiffrer du mail (pas la communication/transfert des données mais l'email en lui même).

Le client ACME de Let's encrypt ne support pas officiellement d'autres usages que du web (et encore, le support est très limité niveau serveur web).

@coom: Donc techniquement, aucun soucis d'utiliser LE avec dovecot et postfix, tu n'auras juste pas les gestion automatique des certificats à partir de leur client ACME, c'est la seule différence.

Source : https://community.letsencrypt.org/t/use-on-non-web-servers/425
Salut Hardware,

Merci pour ce retour d'information, je vais tenter d'utiliser les certificats Let's Encrypt pour mes serveurs mails, afin d'eviter d'utiliser des certificats auto-signés. Seulement, je ne comprends pas très bien cette partie de ton post :
Hardware wrote: @coom: Donc techniquement, aucun soucis d'utiliser LE avec dovecot et postfix, tu n'auras juste pas les gestion automatique des certificats à partir de leur client ACME, c'est la seule différence.
Le client ACME sert à envoyer la requete pour le nom de domaine, a récuperer le certificat, et (eventuellement, selon le type de serveur Web) a modifier le fichier de conf du serveur web pour implémenter les certificats.

Si je comprends bien, tu m'expliques que je devrais manuellement inclure les certificats dans les fichiers de conf des differents services qui l'utilisent (IMAP, POP, etc ..) ? Si c'est ça, je me doutais que ce serait le cas. Utilisant nginx, je dois déja plus ou moins me débrouiller a la main.

Question bête, en utilisant des lien symboliques, on peut automatiser tout ca, non ?

Ex, dans ma conf dovecot, j'explique que le certificat est dans /etc/ssl/moncertif.cer, qui est en fait un lien symbolique pointant vers /etc/letsencrypt/mondomain.tld/certif.cer, apriori, le simple fait de mettre à jour le certificat Web suffirait ?

Désolé si mes questions peuvent sembler farfelues. Je m'y connais plutot bien en Administration, mais je suis une quiche en Certificats.
coom wrote:Si je comprends bien, tu m'expliques que je devrais manuellement inclure les certificats dans les fichiers de conf des differents services qui l'utilisent (IMAP, POP, etc ..) ?
Tout à fait.

Une fois que ton service est configuré avec un certificat Let's Encrypt, lorsque le certificat arrivera à expiration, il suffira juste de relancer le client ACME pour renouveler le certificat, donc aucune modification sera à faire niveau configuration.
Ca marche. Merci beaucoup d'avoir pris le temps de m'expliquer Hardware !

Je vais m'ateler à ca.
6 jours plus tard
Pour info, la bêta publique de Let's Encrypt est ouverte !
Et plutot bonne nouvelle, depuis la beta ouverte, même si on sait que les certificats "wildards" ne sont pas acceptés (et ont apriori, pas vocation a l'être par Let's Encrypt), on peu désormais obtenir un certificat pour autre chose que domain.tld et www.domain.tld !

J'ai fait l'essai avec domain.tld, www.domain.tld, mail.domain.tld et torrent.domain.tld : ca fonctionne tip top.



coom wrote:Et plutot bonne nouvelle, depuis la beta ouverte, même si on sait que les certificats "wildards" ne sont pas acceptés (et ont apriori, pas vocation a l'être par Let's Encrypt), on peu désormais obtenir un certificat pour autre chose que domain.tld et www.domain.tld !

J'ai fait l'essai avec domain.tld, www.domain.tld, mail.domain.tld et torrent.domain.tld : ca fonctionne tip top.

http://img15.hostingpics.net/pics/6842952015120323h3205.png

8o)
Cool ton thème rutorrent, c'est quoi ?
coom wrote:Et plutot bonne nouvelle, depuis la beta ouverte, même si on sait que les certificats "wildards" ne sont pas acceptés (et ont apriori, pas vocation a l'être par Let's Encrypt), on peu désormais obtenir un certificat pour autre chose que domain.tld et www.domain.tld !

J'ai fait l'essai avec domain.tld, www.domain.tld, mail.domain.tld et torrent.domain.tld : ca fonctionne tip top.

http://img15.hostingpics.net/pics/6842952015120323h3205.png

8o)
Et du coup, si j'ai déja enregistré un domaine durant la beta fermée, je fais comment pour obtenir un certif pour chacun de mes sous domaine ? Je relance l'instal ?
winz: tu relances le même process que pour la beta fermée, mais sans spécifier le serveur. Au moment ou il te demande les domaines, tu les specifie tous en les séparant par un espace.

Tu peu aussi faire ca avec un "one-liner" :
/tmp/letsencrypt/letsencrypt-auto auth -d domain.tld -d www.domain.tld -d torrent.domain.tld -d mail.domain.tld -d pop.domain.tld -d imap.domain.tld
etc etc..

xataz: C'est le thème Agent46.
coom wrote:winz: tu relances le même process que pour la beta fermée, mais sans spécifier le serveur. Au moment ou il te demande les domaines, tu les specifie tous en les séparant par un espace.

Tu peu aussi faire ca avec un "one-liner" :
/tmp/letsencrypt/letsencrypt-auto auth -d domain.tld -d www.domain.tld -d torrent.domain.tld -d mail.domain.tld -d pop.domain.tld -d imap.domain.tld
etc etc..

xataz: C'est le thème Agent46. 😉

J'arrive pas à trouver à quoi l'argument "auth" corresponds
xataz: A la base le client sert à traiter avec les serveurs de Let's Encrypt afin de recuperer le certificat, et il configure au passage ton serveur web. Comme le support de nginx est tjs en beta (visiblement pas super stable aux dernieres news), tu peux utiliser "certonly" pour obtenir le certificat mais sans modifier la conf de ton serveur web.

Le mode "certonly" est aussi connu sous le nom "auth".

Source: letsencrypt-auto --help
root@linux:/tmp/letsencrypt# ./letsencrypt-auto --help
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt --help

  letsencrypt [SUBCOMMAND] [options] [-d domain] [-d domain] ...

The Let's Encrypt agent can obtain and install HTTPS/TLS/SSL certificates.  By
default, it will attempt to use a webserver both for obtaining and installing
the cert. Major SUBCOMMANDS are:

  (default) run        Obtain & install a cert in your current webserver
  certonly             Obtain cert, but do not install it (aka "auth")
Avec ça tu devrais avoir du A+ :
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/dh4096.pem;
ssl_session_cache shared:SSL:10m;
ssl_ecdh_curve secp521r1;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
ssl_session_tickets off;
Bien générer un dhparam d'une taille d'au moins 2048 dans /etc/nginx/ssl (et adapter la directive).
Rajouter des protocoles si nécessaire.
    Rate limit on registrations per IP is currently 10 per 3 hours
    Rate limit on certificates per Domain is currently 5 per 7 days
    Obligé d'attendre...
    Petit tuto pour avoir un A+

    Il faut se connecter en root, pour les opérations suivantes.

    Il faut stopper nginx avant tout
    service nginx stop
    Toujours mettre à jour le serveur avant :
    aptitude update && aptitude upgrade
    mkdir /etc/nginx/ssl
    openssl openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
    # vim /etc/nginx/ssl/ciphers.conf
    
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA";
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ssl_session_cache shared:SSL:10m;
    ssl_ecdh_curve secp384r1;
    ssl_session_tickets off;
    
    add_header Strict-Transport-Security "max-age=31536000";
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    note : le max age de Strict-Transport-Security correspond à 1an.

    Ensuite il faut inclure le fichier ciphers.conf dans http {}
    # vim /etc/nginx/nginx.conf
    
    http {
        include /etc/nginx/ssl/ciphers.conf
    }
    Installation de letsencrypt
    cd /tmp
    git clone https://github.com/letsencrypt/letsencrypt
    cd letsencrypt
    Après cette étape il faut générer le certificat via let's encrypt, avec une clée RSA de 4096bits
    ./letsencrypt-auto --help all
    ./letsencrypt-auto certonly --rsa-key-size 4096
    Il faudra ajouter une adresse mail, accepter la licence, et ajouter les sous domaines espacer d'un espace.

    Pour finir il faudra ajouter 2 lignes dans chacun de vos vhosts.
    # vim /etc/nginx/sites-enbled/monsite.fr.conf
    
    server {
        ssl_certificate /etc/letsencrypt/live/monsite.fr/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/monsite.fr/privkey.pem;
    }
    Pour finaliser il ne faut pas oublier de redémarrer nginx
    service nginx start
    Quitte à avoir une configuration homogène, et pour éviter un léger surcoût CPU, mettre ssl_ecdh_curve à secp384r1 est plus que suffisant. Il est aussi bon de de savoir que par défaut, letsencrypt génère des clés RSA 2048 bits, il est donc possible d'utiliser une taille de 4096 par exemple, il suffira de préciser (c'est le petit plus pour les paranoïaques et ceux qui veulent gonfler leur note sur ssllabs).