<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bits on Humberto Rocha</title><link>https://humberto.io/fr/bits/</link><description>Recent content in Bits on Humberto Rocha</description><generator>Hugo</generator><language>fr</language><atom:link href="https://humberto.io/fr/bits/index.xml" rel="self" type="application/rss+xml"/><item><title>Extraire le certificat d'un domaine</title><link>https://humberto.io/fr/bits/extraire-le-certificat-d-un-domaine/</link><pubDate>Sun, 06 Jul 2025 00:00:00 +0000</pubDate><guid>https://humberto.io/fr/bits/extraire-le-certificat-d-un-domaine/</guid><description>&lt;p&gt;Pour extraire le certificat utilisez:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;openssl s_client -showcerts -servername humberto.io -connect humberto.io:443 &amp;lt;/dev/null 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si votre cible n&amp;rsquo;utilise pas &lt;a href="https://fr.wikipedia.org/wiki/Server_Name_Indication"&gt;SNI&lt;/a&gt; vous pouvez enlever l&amp;rsquo;option &lt;code&gt;-servername &amp;lt;fqdn&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Après vous pouvez l&amp;rsquo;enchainer avec d&amp;rsquo;autres commandes OpenSSL pour extraire de l&amp;rsquo;information dans le format dont vous avez besoin.&lt;/p&gt;
&lt;p&gt;Pour extraire le certificat dans le format PEM:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| openssl x509 -outform PEM
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pour extraire la clé publique:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| openssl x509 -pubkey -noout
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pour extraire son empreinte:&lt;/p&gt;</description></item><item><title>Extraire le certificat et la clé d'un fichier .pfx</title><link>https://humberto.io/fr/bits/extraire-le-certificat-et-la-cle-d-un-fichier-pfx/</link><pubDate>Mon, 10 Jul 2023 00:00:00 +0000</pubDate><guid>https://humberto.io/fr/bits/extraire-le-certificat-et-la-cle-d-un-fichier-pfx/</guid><description>&lt;p&gt;Extrayez le certificat du fichier &lt;code&gt;.pfx&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;openssl pkcs12 -in &amp;lt;FICHIER_POINT_PFX&amp;gt; -clcerts -nokeys -chain -out certificate.crt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Extrayez la clé privée au format &lt;code&gt;.pem&lt;/code&gt; sans cryptage du fichier &lt;code&gt;.pfx&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;openssl pkcs12 -in &amp;lt;FICHIER_POINT_PFX&amp;gt; -nocerts -nodes -out private_key.pem
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Convertissez le &lt;code&gt;.pem&lt;/code&gt; au format de clé &lt;code&gt;RSA&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;openssl rsa -in private_key.pem -out id_rsa
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si vous utilisez OpenSSL 3, le format de sortie par défaut sera &amp;ldquo;PKCS8&amp;rdquo;, avec des limites d&amp;rsquo;encapsulation au format suivant:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-----BEGIN PRIVATE KEY-----
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-----END PRIVATE KEY-----
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si vous avez besoin de la clé au format &lt;code&gt;PKCS1&lt;/code&gt;, c&amp;rsquo;est-à-dire traditionnel, utilisez la flag &lt;code&gt;-traditional&lt;/code&gt; comme ceci:&lt;/p&gt;</description></item><item><title>Connecter dans un Pod Kubernetes</title><link>https://humberto.io/fr/bits/connecter-dans-un-pod-kubernetes/</link><pubDate>Wed, 07 Dec 2022 00:00:00 +0000</pubDate><guid>https://humberto.io/fr/bits/connecter-dans-un-pod-kubernetes/</guid><description>&lt;p&gt;Pour ouvrir une session il faut d&amp;rsquo;abord connaître le nom du Pod.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl get pod -n &amp;lt;namespace&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ensuite, ouvrez une session bash:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl exec --stdin --tty &amp;lt;nom du pod&amp;gt; -n &amp;lt;namespace&amp;gt; -- /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Il est aussi possible d&amp;rsquo;ouvrir une session shell:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl exec --stdin --tty &amp;lt;nom du pod&amp;gt; -n &amp;lt;namespace&amp;gt; -- /bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Quelques fois, il est nécessaire de démarrer un nouveau Pod à partir d&amp;rsquo;une image ayant les outils nécessaires pour faire des inspections.&lt;/p&gt;</description></item><item><title>Session interactive dans un conteneur Docker</title><link>https://humberto.io/fr/bits/session-interactive-dans-un-conteneur-docker/</link><pubDate>Tue, 22 Nov 2022 00:00:00 +0000</pubDate><guid>https://humberto.io/fr/bits/session-interactive-dans-un-conteneur-docker/</guid><description>&lt;p&gt;Pour ouvrir une session bash dans un conteneur executez:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker exec -it &amp;lt;nom-du-conteneur&amp;gt; /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Dans le cas où l&amp;rsquo;image est minimaliste il est toujours possible d&amp;rsquo;ouvrir une session shell:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker exec -it &amp;lt;nom-du-conteneur&amp;gt; /bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;aside class="tip warning"&gt;
 Il est seulement possible d&amp;rsquo;ouvrir une session dans un conteneur qui est en cours d&amp;rsquo;exécution, donc vérifiez son statut avec &lt;code&gt;docker ps&lt;/code&gt; avant de essayer ouvrir une session.
&lt;/aside&gt;

&lt;p&gt;Si vous ne rappelez pas le nom du conteneur, listez-les avec:&lt;/p&gt;</description></item><item><title>Docker sans root</title><link>https://humberto.io/fr/bits/docker-sans-root/</link><pubDate>Sat, 30 Jul 2022 00:00:00 +0000</pubDate><guid>https://humberto.io/fr/bits/docker-sans-root/</guid><description>&lt;p&gt;Créez le groupe &lt;code&gt;docker&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo groupadd docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ajoutez l&amp;rsquo;utilisateur au groupe &lt;code&gt;docker&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo usermod -aG docker $USER
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Appliquez les changements au groupe.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;newgrp docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Vérifiez s&amp;rsquo;il est possible d&amp;rsquo;exécuter &lt;code&gt;docker&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;aside class="tip warning"&gt;
 Il n&amp;rsquo;est pas recommandé de le faire avec des serveurs qui sont branchés a l&amp;rsquo;Internet, gardez les privilèges d&amp;rsquo;exécuter &lt;code&gt;docker&lt;/code&gt; au &lt;code&gt;root&lt;/code&gt;.
&lt;/aside&gt;</description></item><item><title>Utiliser le portable avec le capot fermé</title><link>https://humberto.io/fr/bits/utiliser-le-portable-avec-le-capot-ferme/</link><pubDate>Sat, 30 Jul 2022 00:00:00 +0000</pubDate><guid>https://humberto.io/fr/bits/utiliser-le-portable-avec-le-capot-ferme/</guid><description>&lt;p&gt;Modifiez le fichier &lt;code&gt;/etc/systemd/logind.conf&lt;/code&gt; et changez les lignes suivantes:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#89b4fa"&gt;HandleLidSwitch&lt;/span&gt;&lt;span style="color:#89dceb;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a6e3a1"&gt;ignore&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#89b4fa"&gt;HandleLidSwitchExternalPower&lt;/span&gt;&lt;span style="color:#89dceb;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a6e3a1"&gt;ignore&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#89b4fa"&gt;HandleLidSwitchDocked&lt;/span&gt;&lt;span style="color:#89dceb;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a6e3a1"&gt;ignore&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Après redémarrez le service:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl restart systemd-logind.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Éteindre automatiquement l'écran du portable</title><link>https://humberto.io/fr/bits/eteindre-automatiquement-l-ecran-du-portable/</link><pubDate>Fri, 29 Jul 2022 00:00:00 +0000</pubDate><guid>https://humberto.io/fr/bits/eteindre-automatiquement-l-ecran-du-portable/</guid><description>&lt;p&gt;Modifiez le fichier &lt;code&gt;/etc/default/grub&lt;/code&gt; et ajoutez le contenu suivant à la variable &lt;code&gt;GRUB_CMDLINE_LINUX&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#89b4fa"&gt;GRUB_CMDLINE_LINUX&lt;/span&gt;&lt;span style="color:#89dceb;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a6e3a1"&gt;&amp;#34;consoleblank=300&amp;#34; # éteindre l&amp;#39;écran après 5 minutes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Puis mettez a jour grub:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo update-grub
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Mise a jour de plusieurs dépôts</title><link>https://humberto.io/fr/bits/mise-a-jour-de-plusieurs-depots/</link><pubDate>Mon, 23 May 2022 00:00:00 +0000</pubDate><guid>https://humberto.io/fr/bits/mise-a-jour-de-plusieurs-depots/</guid><description>&lt;p&gt;Une astuce pour quand on a une liste de dépôts git à mettre a jour:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c &amp;#34;cd &amp;#39;{}&amp;#39; &amp;amp;&amp;amp; git pull &amp;amp;&amp;amp; cd ..&amp;#34; \;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La partie &lt;code&gt;\( ! -name . \)&lt;/code&gt; de la commande est utilisée pour n&amp;rsquo;est pas exécuter la commande avec le fichier &lt;code&gt;.&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Recherche et remplacement de sauts de ligne dans vim</title><link>https://humberto.io/fr/bits/recherche-et-remplacement-de-sauts-de-ligne-dans-vim/</link><pubDate>Sun, 20 Feb 2022 00:00:00 +0000</pubDate><guid>https://humberto.io/fr/bits/recherche-et-remplacement-de-sauts-de-ligne-dans-vim/</guid><description>&lt;p&gt;Il y a deux caractères spéciaux différents qui sont utilisés pour les sauts de ligne:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;\n&lt;/code&gt; représente le caractère de nouvelle ligne &lt;code&gt;0x0a&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;\r&lt;/code&gt; représente le caractère de retour chariot &lt;code&gt;0x0d&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mais, dans le coté remplacement du modèle de recherche de vim les choses changent un peut:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;\n&lt;/code&gt; deviens le caractère nul &lt;code&gt;0x00&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;\r&lt;/code&gt; deviens le caractère de retour chariot &lt;code&gt;0x0a&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alors, pour rechercher le saut de ligne on utilise le &lt;code&gt;\n&lt;/code&gt; et pour le remplacer on utilise le &lt;code&gt;\r&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Commit vide</title><link>https://humberto.io/fr/bits/commit-vide/</link><pubDate>Fri, 18 Feb 2022 00:00:00 +0000</pubDate><guid>https://humberto.io/fr/bits/commit-vide/</guid><description>&lt;p&gt;Parfois on veut juste faire un commit vide pour démarrer le CI, ou pour démarrer un webhook.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git commit --allow-empty -m &amp;#34;Trigger CI&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>