Portainer est un super outil ! C’est une interface de gestion de container Docker intuitive et super agréable. Portainer permet de gérer ses images, volumes, networks que cela soit en local ou alors avec un cluster Swarm. Il s’installe sous forme de container et est disponible sous forme d’interface web.
Docker
On récupère l’image officiel de portainer
$ sudo docker pull portainer/portainer
On vérifie que l’image est bien récupéré
$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE portainer/portainer latest 6cafdc66421d 10 days ago 33.1MB
HTTPS
CSR, KEY & CRT
La génération d’un certificat SSL permet de sécuriser ses échanges avec un chiffrement des transmissions. Je n’ai pas envie que lorsque je me connecte, mes informations d’authentification circulent en clair …
Je vais générer les fichiers suivant pour portainer :
.CSR : c’est le fichier contenant les informations de ma demande certificat, contenant ma clé publique.
.KEY : il s’agit de ma clé privée, qui contient donc les informations privées de mon certificat
.CRT : il s’agit du certificat, contenant les informations publiques du SSL. Dans mon cas il s’agira d’un certificat auto-signé, mais il peut également être délivré par une autorité de certification.
Création d’un certificat SSL
Création d’un répertoire qui accueilleras mes différents fichiers
$ sudo mkdir /etc/ssl/portainer && cd /etc/ssl/portainer
Génération d’une paire de clés RSA 1024bits
$ sudo openssl genrsa -out portainer.key 1024 $ sudo openssl req -new -key portainer.key -out portainer.csr
On remplis ensuite les différents champs qui défilent, ce sont les informations qui apparaitrons sur le certificat : localisation, organisation, domaine souhaité..
Une fois les clés générés, il ne reste plus qu’à générer le certificat avec les informations publiques
$ sudo openssl x509 -req -days 999 -in portainer.csr -signkey portainer.key -out portainer.crt
Déploiement de portainer
Copie des clés
Copie des clés et du certificat pour qu’il soit accessible par portainer lors du démarrage
$ mkdir ~/portainer && sudo cp /etc/ssl/portainer/* ~/portainer
Démarrage
On lance portainer avec nos certificats 🙂
$ sudo docker run --name portainer_with_SSL -d -p 443:9000 -v ~/portainer:/certs -v "/var/run/docker.sock:/var/run/docker.sock" portainer/portainer --ssl --sslcert /certs/portainer.crt --sslkey /certs/portainer.key
Et hop !
Merci gros pour l’explique!