Deblan blog

Simon Vieille

DevOp animé par la culture du libre et du hacking

Expiration de certificats SSL

Fin avril dernier, j'ai publié un projet qui génère un récapitulatif de la date d'expiration d'un ou plusieurs nom de domaines.

Je publie aujourd'hui une mise à jour qui intègre un outil pour avoir un récapitulatif des dates d'expirations des certificats SSL. C'est sur le même principe que pour les noms de domaines avec une uniformisation des affichages.

Pour l'installation, rien ne change si ce n'est une dépendance à openssl :

$ git clone --recurse-submodules https://gitnet.fr/deblan/domain-expiration.git
$ cd domain-expiration
$ composer install

Les commandes varient un petit peu mais rien de bien méchant. Pour tester les noms de domaines :

./check domains google.com amazon.com facebook.com apple.com microsoft.com
+---------------+------+---------------------+
| Domain        | Days | Date                |
+---------------+------+---------------------+
| apple.com     | 438  | 2021-02-20 05:00:00 |
| microsoft.com | 510  | 2021-05-03 04:00:00 |
| amazon.com    | 1787 | 2024-10-31 04:00:00 |
| facebook.com  | 3033 | 2028-03-30 04:00:00 |
| google.com    | 3201 | 2028-09-14 04:00:00 |
+---------------+------+---------------------+

Pour tester les certificats :

./check https-certificates google.com amazon.com facebook.com apple.com microsoft.com 
+---------------+------+---------------------+
| Domain        | Days | Date                |
+---------------+------+---------------------+
| google.com    | 49   | 2020-01-27 13:25:53 |
| facebook.com  | 56   | 2020-02-03 13:25:52 |
| amazon.com    | 112  | 2020-03-31 13:25:52 |
| apple.com     | 222  | 2020-07-19 13:25:52 |
| microsoft.com | 543  | 2021-06-05 13:25:50 |
+---------------+------+---------------------+

Des options peuvent être ajoutées pour modifier le retour en simplifiant le tableau, pour générer du JSON et pour ralentir le programme entre chaque test (très pratique pour récupérer les whois sans être bloqué).

C'est toujours libre et le code est disponible sur Gitnet.


Contourner les trackers de YouTube

Lors des échanges sur la protection de la vie privée et la décentralisation des données, la question de YouTube est un sujet qui fait débat. En effet, je peux créer une instance PeerTube ou en choisir une des nombreuses disponibles pour publier une vidéo mais qu'est est-il de la consultation ? Si des créateurs font le choix de déposer leurs vidéos sur plusieurs plateformes, d’autres se contentent de ne publier que sur YouTube. Dès lors, on est contraint de passer par YouTube pour accéder à ses contenus et cela implique de subir le tracking publicitaire de Google.

Invidious est un projet libre sous licence AGPLv3 qui permet ne plus charger l’interface très obèse de YouTube et par effet de bord, de ne plus charger les trackers qu’on peut y trouver. Invidious est assez complet car il permet également de gérer des comptes utilisateurs sans compte Google, de faire des recherches, de s’abonner à des chaînes et de faire l'intermédiaire entre vous et les serveurs vidéos de Google.

Invidious

Pour autant, ce n’est pas totalement suffisant car si vous consultez une page qui affiche une vidéo YouTube ou que quelqu’un vous partage un lien vers YouTube, vous allez à nouveau afficher des pages obèses et pleines de trackers. Le développeur Booteille a réalisé une extension Firefox destinée à résoudre cela. Une fois installée et activée, l’extension va automatiquement remplacer l’Iframe de YouTube par un encart Invidious et rediriger les pages YouTube vers une instance Invidious de votre choix. Voici à quoi ressemble une vidéo affichée depuis une instance Invidious.

Après plusieurs semaines d’utilisation, retourner sur le site YouTube est presque un calvaire car c’est vraiment lent. Invidious charge et affiche les contenus plus rapidement et le lecteur fait extrêmement bien son boulot. Cependant, si l’interface de YouTube vous manque un peu, vous pouvez installer le logiciel FreeTube qui reprend ses codes et permet de s’interfacer avec une instance Invidious.

FreeTube

Si vous avez envie de tester Invidious, vous pouvez accéder à l'instance officielle et les instances publiques voire de l'installer localement ou sur votre serveur.


Outil de création d’un espace web Apache et PHP

Dans mon activité personnelle et professionnelle, je suis amené à créer des espaces d’hébergement de sites web principalement écrits en PHP.

Il y a quelques années, j’ai écris un script en shell qui posait des questions et générait des fichiers de configuration pour Apache et PHP puis relançait ces services. Il a ensuite évolué et générait également les utilisateurs unix et affinait les permissions. Le principal problème du script est que d’un serveur à l’autre, il fallait mettre des coups de hache dans le code pour l’adapter.

Cette semaine, j’ai entamé une refonte complète du code. Au fur et à mesure du développement, j’ai rendu pas mal de choses configurables et je pense qu’il est fonctionnel sur des environnements relativement différents des miens.

Je vous présente donc vhost-manager, c'est un projet libre et est toujours orienté vers la génération de vhost Apache et de pools PHP FPM. Il faut make, gcc, wget pour l'installer et sh, whiptail et php sont nécessaires à son utilisation.

vhost-manager

Le code source est disponible ici. Le projet se configure via un fichier de variables et j'ai conservé le principe des questions/réponses pour générer les fichiers.


*.deblan.org censuré sur Facebook

Hier, en partageant un lien vers un dossier Nextcloud dans une conversation Messenger, Facebook m'a affiché un message qui indique que deblan.org ne suit pas les "Standards de la communauté".

capture d'écran

En fouillant un peu plus, il s'avère que tous les domaines de deblan.org sont concernés. Il semble également que le mot deblan.org est aussi en liste noire.

capture d'écran

En fouillant encore un peu plus, Facebook a décidé que le partage de l'article vers mon projet deblan/deblan-report était lui aussi contraire à ces fameux "Standards de la communauté" (cf la capture d'écran) alors que je suis l'auteur d'absolument tous les contenus du dit article.

Alors, on peut se demander pourquoi une telle décision ? Aucune idée. Mais si de mon coté ça ne me pose pas plus de soucis que ça, les quelques personnes qui hébergent du contenu sur mon serveur seront peut-être un peu plus contrariées.

Voici un bel exemple de censure, sans fondement et sans explication. Il faut rappeler que Facebook n'est pas qu'un simple hébergeur de contenus, c'est avant tout un site éditorialiste qui décide de ce qui doit apparaître ou pas dans ses pages, en dehors de tout cadre juridique.

Ce web égo-centré est de l'ancien monde et ça me pousse encore plus vers les services du Fediverse, loins de ces sociétés nauséabondes qui crachent à la gueule de tout le monde et qui continueront à le faire car la majorité des gens s'en tapent.


API pour récupérer le contenu Open Graph d'une page web

Pour la fonctionnalité de partage de liens sur ce blog, j'ai développé un script qui récupére le contenu d'une page et analyse ses balises <meta> pour identifier ses données Open Graph.

Dans un autre contexte, j'ai rencontré un bug dans Wallabag qui l'empêche de récupérer le contenu de plusieurs pages web que je désirait lire plus tard. Avec la volonté de créer un rapport de bug, la documentation m'a amené sur la piste du projet Graby utilisé par Wallabag.

Pour comprendre et peut-être proposer un correctif, j'ai joué avec Graby et ça m'a amené à réaliser une API pour remplacer le script utilisé par le blog, en combinent Graby et fusonic/opengraph. L'objectif de l'API est donc de retourner des données générées par Graby et OpenGraph au format JSON.

Voici à quoi ressemble un retour d'appel à l'API avec les données Open Graph :

Le projet est dépendant de PHP 7.3 et c'est libre. Le code source est dispo ici.