Devenez votre propre autorité de certification 🔏 step-ca [Docker, Proxmox, ACME, TLS, X.509, SSH]

Поделиться
HTML-код
  • Опубликовано: 1 авг 2024
  • step-ca est une autorité de certification auto-hébergée et open-source qui permet de gérer les certificats TLS et SSH de manière sécurisée et automatisée. Il facilite le déploiement et la gestion des infrastructures PKI dans les environnements autohébergés/homelabs.
    Déployable avec Docker, il permet de générer des certificats TLS pour les serveurs Proxmox et de configurer ACME.
    Un outil puissant pour sécuriser vos infrastructures et automatiser la gestion des certificats.
    📱 Suivez moi ! 💻
    ►lhub.to/GuiPoM
    🔗 Les liens et commandes 🔗
    ► Documentation step-ca: smallstep.com/docs/step-ca/
    ► Documentation step-cli: smallstep.com/docs/step-cli/
    ► Image docker step-ca: hub.docker.com/r/smallstep/st...
    ► ... dans les chapitres de la vidéo !
    📃 Sommaire 📃
    00:00 ⚠️ Attention, vous êtes en danger ⚠️
    01:13 C'est très différent de la mise en place d'un reverse proxy, même si les deux sujets peuvent, si nécessaire, se combiner
    02:25 Une manière simple de générer des certificats en déployant votre propre autorité de certification locale
    03:30 smallstep: les projets opensource step-ca et step-cli
    05:15 🤯Attention, le sujet est un peu complexe à présenter et à suivre
    08:04 Comprendre le problème: les risques d'un certificat non valide et les raisons de la non validité
    10:50 L'écran d'avertissement de votre navigateur et les détails de l'erreur associée
    13:45 Dans Proxmox, le certificat est automatiquement généré et la résolution du problème serait très simple: enregistrer le certificat racine dans votre navigateur
    15:25 Une machine virtuelle que j'ai dédié à step-ca, le serveur qui héberge l'autorité de certification (CA)
    16:22 La gestion locale DNS et DHCP pour prendre le contrôle de vos serveurs DNS chez vous
    18:45 La mise en place de cette machine n'est pas couverte par la vidéo. J'ai personnellement fait le choix d'un conteneur (LXC) installé en Debian 12, avec docker. J'ai ajouté portainer pour la lisibilité.
    21:13 L'image docker de step-ca et la documentation associée
    23:58 Mon docker compose configuré pour mes besoins
    27:13 Les logs du conteneur et les informations intéressantes qui y figurent
    29:55 Le contenu du répertoire de step-ca: certificats racine et intermédiaire, configuration, secrets .. on y ajoute les infos administrative
    31:07 On vérifier si le serveur step-ca fonctionne, en testant la ressource /health
    31:58 Installer la ligne de commande sur la ou les machines de votre choix
    36:42 Des certificats a durée limité: 1 journée. Vous pouvez changer la configuration du CA
    38:55 On génère manuellement un certificat pour la machine Proxmox et on le charge dans le serveur
    42:40 Le certificat lui n'est pas reconnu comme valide. Il reste à enregistrer l'autorité de certification racine et intermédiaire dans vos navigateurs
    44:50 Petit soucis de cette vidéo: le navigateur refuse de me reconnaître le certificat valide pour mon common name local, mais le reconnait pour mon adresse IP
    46:13 Et maintenant le plus intéressant dans l'histoire: utilise de ACME pour la génération et le renouvellement automatique de vos certificats
    50:40 On retente le certificat généré mais avec pve.home au lieu de pve.local. Et ça fonctionne dans ce cas là.
    54:40 J'espère que cette vidéo vous aura permis de mieux comprendre comment les autorités de certification vous fournissent vos certificats en vérifiant votre authenticité
  • НаукаНаука

Комментарии • 41

  • @laurentraifort5840
    @laurentraifort5840 28 дней назад

    bonjour et merci pour cette présentation, solution top, mis en place sur mon lab interne, ça fait le taf !

  • @olivierbroify
    @olivierbroify 20 дней назад +1

    Merci beaucoup et bravo pour cette vidéo. Elle me sera très utile !

    • @GuiPoM
      @GuiPoM  15 дней назад

      avec plaisir !

  • @ClimaxUke
    @ClimaxUke Месяц назад

    Un grand merci et super travail !
    C'est lors de la génération du certificat que vous avez omis : `pve.local`, la ptite coquille était là. Bon week-end.
    step ca certificate pve.local srv.ctr srv.key --san IP --san pve.local --san pve --not-after 43800h

  • @DavidBe42
    @DavidBe42 Месяц назад +1

    Ta vidéo tombe à pic, juste au moment où je cherchais une solution pour répondre au même besoin! Un grand merci pour ton excellent travail

    • @GuiPoM
      @GuiPoM  Месяц назад +2

      Je suis l'homme qui fait des vidéos qui tombent à pic ! 😀

  • @duped8226
    @duped8226 Месяц назад +1

    Génial, merci pour cette vidéo je la commence mais déjà je sais que cela va être très intéressant et que je vais apprendre plein de choses, bravo pour la recherche et la variété des vidéos publiées.

  • @burlejer
    @burlejer Месяц назад

    Merci et bravo pour cette vidéo. Top, comme d’habitude: clair et simple.

    • @GuiPoM
      @GuiPoM  Месяц назад

      Merci ! 😊

    • @burlejer
      @burlejer Месяц назад

      @@GuiPoM merci à toi surtout 😉

  • @freddzt8335
    @freddzt8335 Месяц назад

    Bravo 👏 vidéo très utile. Merci

    • @GuiPoM
      @GuiPoM  Месяц назад

      Avec plaisir 👍

  • @kristof9497
    @kristof9497 Месяц назад

    Merci, aussitôt vu, aussitôt adopté pour mes proxmox.

  • @amga56YT
    @amga56YT Месяц назад

    Bravo pour ta vidéo, cela permet de monter en compétence, ça serait/sera bien utile aussi pour portainer !

    • @GuiPoM
      @GuiPoM  Месяц назад

      pourquoi pas, oui !

  • @falphonso
    @falphonso Месяц назад

    Bonjour, meci pour cette vidéo qui tombe à point pour un sujet qui vient de m'être confié au boulot !!!
    Juste par rapport à ton problème de "certificat non valide" après installation de ton certificat généré à la main et que le acme/certbot "corrige" quand exécuté par Proxmox, je remarque que quand tu le génères tu lui donnes le nom pve.local, ça apparaît bien dans le subject mais il n'apparaît pas dans les alternatives names dans l'interface Proxmox des certificats (car non rajouté en tant que --san dans la CLI, jusque là logique). Alors que quand c'est le Proxmox qui le génère, le nom pve.home appraît à la fois dans le "Subject" ET dans le "alternative names"..... peut-être une piste à creuser....

    • @GuiPoM
      @GuiPoM  Месяц назад +1

      oui, c'est très possible que ce soit une petite bêtise de ce genre. Normalement ce genre de configuration n'est pas nécessaire.

  • @sylvain351
    @sylvain351 27 дней назад

    C est vrai que c est galère à mettre en place en général sur du local. Je testerais cette méthode qui semble résoudre des soucis

  • @martyfr3011
    @martyfr3011 Месяц назад +1

    Bonsoir,
    c'est parcequ'il faut mettre aussi pve.local dans le --san ;)

    • @GuiPoM
      @GuiPoM  Месяц назад

      Ok, je rententerai, a l'occasion

    • @tempa9303
      @tempa9303 Месяц назад

      En effet c'est bien ça !

    • @layerops
      @layerops Месяц назад

      @@tempa9303 ;)

    • @GuiPoM
      @GuiPoM  Месяц назад

      @@tempa9303 dans ce cas, pourquoi ca marche avec pve.home, sans le mettre en subject alternative name ? on est pourtant dans un cas de figure similaire

  • @francois.h
    @francois.h 26 дней назад

    Sinon, un nom de domaine ca coûte trois fois rien, et des reverse proxy comme nginx proxy manager ou traefik gèrent très bien la génération de certificat avec un certbot et let'sencrypt.
    Y'a une raison particulière qui t'as poussée à ne pas faire comme ça ?

    • @GuiPoM
      @GuiPoM  26 дней назад

      C'est l'objet de cette vidéo. Un nom de domaine c'est restreint à des machines exposées sur internet.
      Pour des machines internes, ce n'est pas ainsi que l'on s'y prend si on veut bien faire les choses.

    • @francois.h
      @francois.h 26 дней назад

      @@GuiPoM bah, j'utilise mon nom de domaine aussi en interne, dans traefik ou npm tu peux restreindre l'accès à certains services uniquement en local.
      Certains ajoutent même un .local comme subdomain.
      Qu'est ce qui te fais dire qu'on ne doit pas s'y prendre comme ça?

    • @GuiPoM
      @GuiPoM  26 дней назад

      @@francois.h Tu n'as pas du bien comprendre la problématique.
      Aucun lien entre une autorité de certification et un reverse proxy.
      Il n'y a pas a avoir de reverse proxy en place puisque ces machines ne sont pas exposées et exposables a internet, elles ne doivent donc pas être déclarées dans un reverse proxy, ça n'a aucun intérêt et ça créé des problèmes de sécurité s'il est incorrectement configuré.

    • @francois.h
      @francois.h 26 дней назад

      @@GuiPoM "s'il est incorrectement configuré" comme pour tout je dirais.
      Le reverse proxy + le certbot me permettent justement de ne pas avoir à gérer les certificats sur chaque machine / VM / conteneur docker. Et certains services ne permettent pas d'utiliser nativement un certificat

    • @GuiPoM
      @GuiPoM  26 дней назад

      @@francois.h je ne sais pas qui tu essayes de convaincre, mais je te le redis ce que tu fais est incorrect, une machine déployée en local n'a pas a se retrouver exposer sur un reverse proxy connecté a internet.
      La bonne manière de faire c'est d'utiliser des outils faits pour ça. Ce n'est pas pour rien que ces outils existent et mon objectif c'est d'expliquer aux gens comment bien du prendre, pas comment mal déployer leur services auto hébergés.

  • @dominiquelefevre6193
    @dominiquelefevre6193 18 дней назад

    Bonjour Guillaume, dans adguard, dans les réécritures DNS tu utilises des noms avec .local, c'est ce que j'avais fait et j'ai eu de gros problèmes de résolution de noms. Après quelques recherches j'ai constaté que les noms en .local étaient déconseillés. voir en.wikipedia.org/wiki/.local. Merci beaucoup pour la vidéo.

    • @GuiPoM
      @GuiPoM  18 дней назад

      oui, c'est lié au mDNS et en général on ne réécrit pas les résolution de noms locales. Mais dans l'idée ce n'est pas trop génant si on ne fait pas de betises avec la fonctionnalité