Let’s Encrypt + Heroku :-)

Depuis peu, Heroku intègre gratuitement en beta le SSL via SNI.

Let’s Encrypt permet d’obtenir des certificats SSL gratuits.

Comment faire fonctionner l’ensemble avec Ruby on Rails ? C’est l’objet de cet article, fortement inspiré d’un article de Collective Idea.

Après ça, vous n’aurez plus d’excuses pour ne plus sécuriser vos sites !

D’abord, installer Let’s Encrypt

Vous êtes sur Mac et avez installé Homebrew ? C’est facile. Une simple ligne de commande suffit.

brew install letsencrypt

Pour les autres, rendez-vous sur le site officiel.

Premières étapes

Lancez l’invite de commande et suivez doucement les instructions.

sudo letsencrypt certonly --manual

On vous demande ensuite le nom de domaine.

Puis si vous êtes d’accord pour enregistrer votre IP : acceptez.

Ensuite, l’écran passe au noir avec un message de type :


Make sure your web server displays the following content at [...]

Là, stoppez !

On passe à la partie Ruby on Rails.

La partie Ruby on Rails

D’abord, mettez à jour config/routes.rb.


Rails.application.routes.draw do
# ...

# Let’s encrypt
get ‘/.well-known/acme-challenge/:id’ => ‘pages#letsencrypt’

# …

end

 

Le contrôleur s’appelle ici PagesController mais peut être n’importe quel contrôleur de pages statiques.
class PagesController < ApplicationController
def letsencrypt
# utilisez ici le code fourni par Let's Encrypt
render text: "code-fourni-par-lets-encrypt"
end
end

C’est fini pour la partie Ruby on Rails.

On continue via Let’s Encrypt

D’abord, on vérifie l’adresse http://<mon-domaine>/.well-known/acme-challenge/<id&gt; histoire de s’assurer que ça retourne bien le texte en code.

Là, c’est compliqué. On presse Enter.

Vous voyez le message Congratulations! ? C’est gagné !

Mais on ne s’arrête pas là.

Installation sur Heroku

Simple commande :
sudo heroku _certs:add /etc/letsencrypt/live/<domaine>/fullchain.pem /etc/letsencrypt/live/<domaine>/privkey.pem --app <mon-app>

Et voilà.

Pensez ensuite à mettre à jour vos DNS. Attendez quelques instants. Normalement, tout devrait être sécurisé.

[ Edit ]

Un outil permet de faciliter tout ça. Venez le découvrir sur GitHub. (merci @dmathieu)

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s