Sommaire
Le tutoriel permet de sécuriser un serveur Plex en HTTPS sur une domaine personnalisé, en utilisant un certificat Let’s Encrypt gratuit, valable 3 mois et renouvelable à souhait.
Dans cet exemple, j’utilise mon nom de domaine https://leturfu.com avec un nom de domaine réserver sur Ionos et je vais utiliser la clef API gratuite de Ionos pour certifier mon nom de domaine via certbot. Bien évidemment, il vous faudra vous aussi un nom de domaine et un compte Plex pour réaliser ce tuto.
Créer une API sur Ionos
Connectez vous sur le site https://my.ionos.fr/ et accédez à votre compte. Une fois identifié, rendez vous sur la page de génération de clef API Ionos via cette adresse : https://developer.hosting.ionos.fr/keys.
Cliquez sur le bouton en haut à droite « Créer une nouvelle clé ».
Ionos va vous générer deux clés, la première qui est la clé publique et la seconde la clé privé dite secrète.
Attention : Mettez vous la clé privé dans un endroit sécurisé de votre ordinateur car elle ne sera donnée qu’une fois. En cas de perte, il faudra en généré une nouvelle et refaire toutes les étapes.
Installation de certbot et d’une extension dns ionos
Maintenant, on ouvre le terminal pour installer les quelques programmes nécessaires pour créer la certification Let’s encrypt avec le programme Certbot.
Vérifiez que votre système d’exploitation est pris en charge par Certbot. Les systèmes d’exploitation compatibles sont listés sur la page d’installation de Certbot : https://certbot.eff.org/instructions
Pour Mac Os :
- Vous devez déjà installer Homebrew qui est le gestionnaire de paquets pour Mac.
- Installez ensuite certbot avec la commande suivante :
brew install certbot
- Vérifiez que certbot soit bien installé, il vous retournera le numéro de la version
certbot --version
- Installez Python (minimum 3.0), rendez-vous sur le site https://www.python.org/downloads/mac-osx/
- Vérifiez que Python soit bien installé
python --version
- Installez Pip qui est le gestionnaire de paquets de python
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
- Executer le script d’installation de Pip en validant par votre mot de passe
sudo python get-pip.py
Pour Windows :
Certbot n’est pas directement pris en charge pour les systèmes Windows. Cependant, il existe une autre solution qui consiste à utiliser un environnement de développement tel que Git Bash, qui permet d’émuler une ligne de commande Unix. Voici les étapes à suivre :
- Téléchargez et installez Git Bash : https://git-scm.com/downloads
- Ouvrez Git Bash à partir du menu Démarrer.
- Dans la fenêtre Git Bash, tapez la commande suivante pour télécharger le script d’installation de Certbot :
curl -O https://dl.eff.org/certbot-auto
- Une fois le téléchargement terminé, exécutez le script d’installation à l’aide de la commande suivante :
chmod +x certbot-auto
- Enfin, pour installer Certbot, exécutez la commande suivante :
sudo ./certbot-auto
Ensuite on va installer python :
- Téléchargez la dernière version de Python à partir du site officiel de Python : https://www.python.org/downloads/windows/
- Cliquez sur le bouton « Download Python X.X.X » pour télécharger l’installeur de Python.
- Une fois le téléchargement terminé, double-cliquez sur l’installeur pour lancer l’installation.
- Cochez la case « Add Python X.X to PATH » pour ajouter Python à votre variable d’environnement PATH, ce qui permettra à votre système de trouver Python plus facilement.
- Cliquez sur « Customize installation » pour personnaliser l’installation si vous le souhaitez, sinon, cliquez directement sur « Install Now ».
- Attendez que l’installation soit terminée. Une fois terminée, vous pouvez vérifier que Python est correctement installé en ouvrant une fenêtre invite de commande et en tapant la commande suivante qui devrait retournée la version installée :
python --version
On va enchainer avec l’installation de Pip pour windows.
- Téléchargez le fichier get-pip.py à partir du site officiel de pip : https://bootstrap.pypa.io/get-pip.py
- Ouvrez une fenêtre d’invite de commande et accédez au dossier dans lequel vous avez enregistré le fichier get-pip.py.
- Exécutez la commande suivante pour installer pip :
python get-pip.py
- Vérifiez que pip est correctement installé avec cette commande :
pip --version
Pour Linux :
Voici les étapes à suivre pour installer certbot sur une distribution Linux :
- Ouvrez un terminal sur votre distribution Linux.
- Ajoutez le référentiel Certbot en exécutant la commande suivante :
sudo add-apt-repository ppa:certbot/certbot
- Mettez à jour la liste des paquets en lançant la commande :
sudo apt-get update
- Installez Certbot en exécutant cette commande :
sudo apt-get install certbot
- Si vous utilisez Apache comme serveur Web, installez le plugin Apache pour Certbot en exécutant la commande suivante :
sudo apt-get install python3-certbot-apache
- Si vous utilisez Nginx comme serveur Web, installez le plugin Nginx pour Certbot en exécutant la commande suivante :
sudo apt-get install python3-certbot-nginx
En ce qui concerne le programme Pip, il est généralement déjà installé sur linux mais vous pouvez toujours le vérifier.
Mettez à jour tous vos paquets :
sudo apt-get update
Vérifiez si Pip est déjà présent sur votre distribution linux, :
pip --version
S’il retourne une version, vous n’aurez pas besoin de lancer une nouvelle installation, sinon tapez la commande suivante :
sudo apt-get install python-pip
Installation de l’extension DNS Ionos
- Installez l’extension dns ionos, il installera de lui même toutes les autres dépendances pour fonctionner correctement
pip install certbot-dns-ionos
Configuration du Cerbot
Il va falloir créer un fichier .ini pour y insérer la configuration de l’API Ionos.
- Créez un fichier.txt puis éditez le avec un éditeur de texte en insérant le format suivant :
dns_ionos_prefix = "Préfixe public IONOS" dns_ionos_secret = "Secret" dns_ionos_endpoint = https://api.hosting.ionos.com
Préfixe public IONOS : la clé publique fournit par l’API Ionos
Secret : la clé privée (ou secrète) de l’API Ionos
La troisième ligne, on y touche pas c’est le lien du serveur de l’API.
- Renommez ce fichier avec le nom « credentials.ini » en faisant bien attention de changer aussi l’extension .txt par .ini et placez le dans un endroit sécurisé de votre ordinateur.
Assurez-vous que les droits d’accès sur le fichier .ini soit bien en 600. Si ce n’est pas le cas, lancer la commande suivante en changeant le chemin d’accès de votre fichier credentials.ini :
Configuration de Certbot pour Mac et linux
Envoyez la commande dans le terminal :
chmod 600 /Users/ItaliaStylz/Sites/ssl/credentials.ini
Configuration de Certbot pour Windows
Ouvrez une fenêtre d’invite de commandes en tant qu’administrateur en cliquant avec le bouton droit sur « Invite de commandes » et en sélectionnant « Exécuter en tant qu’administrateur ». lancez la commande suivante en changeant en plus du chemin d’accès au fichier, le nom d’utilisateur que vous utilisez.
icacls "C:\chemin\vers\credentials.ini" /grant NOMUTILISATEUR:(R)
Création des certificats Let’s Encrypt pour Plex
- Ouvrez le terminal et écrivez la commande suivante en changeant les chemins du fichier et les noms de domaines :
sudo certbot certonly --dns-ionos-credentials /Users/ItaliaStylz/Sites/ssl/credentials.ini --dns-ionos-propagation-seconds 60 -d leturfu.com -d '*.leturfu.com'
Chemin du fichier .ini sur mon PC : /Users/ItaliaStylz/Sites/ssl/credentials.ini
Nom de domaine : leturfu.com et *.leturfu.com (le deuxième prendra en compte dans les certificats, tous les sous domaines de votre nom de domaine grâce aux caractères *. et n’oubliez pas de laisser les deux guillemets ).
- Au moment où il vous pause la question : « How would you like to authenticate with the ACME CA? », choisissez la réponse 1.
- Si vous aviez déjà fait un certificat auparavant, il vous demandera juste après « What would you like to do? », choisissez le 2 pour renouveler les certificats.
Maintenant nous avons les 4 certificats dont : fullchain.pem, chain.pem, cert.pem et privkey.pem. Si vous avez un serveur web qui utilise votre nom de domaine, n’oubliez pas de renseigner ces certificats SSL dans son paramètrage dédié.
Plex nous demande un certificat de type Pkcs 12 ou Pfx et grâce aux précédent générés, nous allons pouvoir obtenir celui voulu par Plex.
- Ouvrez à nouveau le terminal et lancez la commande suivante :
sudo openssl pkcs12 -export -out /private/etc/letsencrypt/archive/leturfu.com-0006/certificat.pfx -inkey /private/etc/letsencrypt/archive/leturfu.com-0006/privkey2.pem -in /private/etc/letsencrypt/archive/leturfu.com-0006/cert2.pem -certfile /private/etc/letsencrypt/archive/leturfu.com-0006/chain2.pem
Dans la commande donnée, remplacez par vos propres valeurs:
Le chemin de sauvegarde du fichier généré : /private/etc/letsencrypt/archive/leturfu.com-0006/certificat.pfx
Le chemin du certificat privkey.pem généré dans l’étape précédente : /private/etc/letsencrypt/archive/leturfu.com-0006/privkey2.pem
Le chemin du certificat cert.pem généré dans l’étape précédente /private/etc/letsencrypt/archive/leturfu.com-0006/cert2.pem
Le chemin du certificat chain.pem généré dans l’étape précédente /private/etc/letsencrypt/archive/leturfu.com-0006/chain2.pem
- A cet instant, on vous demandera un mot de passe, ne remplissez rien. Appuyez une première fois sur entrée, puis une seconde fois pour revalider le mot de passe vide. Suite à cela, votre certificat certificat.pfx va se créer.
Configuration du réseau Plex
On arrive pratiquement au bout ! Allez sur votre interface plex et rendez vous dans le menu de gauche « Réseau ».
Renseignez les champs suivants :
– Emplacement du certificat personnalisé : ex: /private/etc/letsencrypt/archive/leturfu.com-0006/certificat.pfx
– Domaine du certificat personnalisé : leturfu.com:32400
Dans la première case il s’agit du chemin où vous avez sauvegardez le certificat.pfx et dans la deuxième, votre nom de domaine avec le port par défaut de plex 32400 que vérifiez dans le menu Réglage > Accès à distance.
Validez le tout en allant tout en bas des paramètres et en cliquant sur le bouton « Enregistrer les modifications ».
L’opération est terminée ! En lançant l’url https://NOMDEVOTRESITE.COM:32400 Vous devriez voir l’interface Plex charger avec la certification HTTPS, représenter sur chrome par exemple par le cadna fermé à gauche de votre url.