Déployé en production

API de Gestion de Certificats SSL/TLS

Solution complète de gestion du cycle de vie des certificats avec API REST sécurisée, authentification PocketBase, chiffrement AES-256-GCM et déploiement automatisé via GitLab CI/CD sur AWS ECS Fargate. Notifications automatiques d'expiration incluses.

Golang Echo PocketBase Docker GitLab CI AWS ECS

Vue d'ensemble

Contexte

Projet d'études M1 visant à développer une solution interne pour l'entreprise fictive "Solution Libre" qui nécessitait une API robuste pour gérer ses certificats SSL/TLS. L'objectif était de centraliser la gestion des certificats pour tous les services internes et externes de l'entreprise, en respectant les normes de sécurité RGPD et les bonnes pratiques de l'ANSSI.

Objectifs

  • Développer une API REST complète en Go pour la gestion de certificats
  • Implémenter un système d'authentification sécurisé avec PocketBase
  • Mettre en place une chaîne CI/CD automatisée avec GitLab
  • Déployer l'application sur AWS ECS Fargate
  • Assurer la conformité RGPD et la sécurité des données
  • Créer un système de notifications automatiques pour les expirations

Défis Techniques

  • Intégration sécurisée entre GitLab Registry et AWS ECS
  • Gestion des secrets et variables d'environnement entre GitLab et AWS
  • Chiffrement AES-256-GCM des certificats avant stockage
  • Architecture microservices avec communication API sécurisée
  • Mise en place de tâches cron pour monitoring des expirations

Architecture

Architecture Générale

Architecture microservices déployée sur AWS ECS Fargate avec deux conteneurs principaux :

  • API Echo (Golang) : Service principal exposant l'API REST
  • PocketBase : Service d'authentification et base de données

Communication sécurisée via réseau privé AWS avec Load Balancer pour exposition publique. Chaque service dispose de son propre Load Balancer pour un DNS stable.

Architecture API SSL/TLS

Infrastructure

  • AWS ECS Fargate : Orchestration des conteneurs serverless
  • Application Load Balancer : Répartition de charge et DNS
  • AWS Secrets Manager : Gestion sécurisée des tokens GitLab
  • GitLab Container Registry : Stockage privé des images Docker
  • Security Groups : Contrôle d'accès réseau granulaire

Sécurité

  • Chiffrement AES-256-GCM : Certificats chiffrés avant stockage
  • Authentification JWT : Tokens sécurisés via PocketBase
  • Variables d'environnement : Secrets gérés via AWS et GitLab
  • HTTPS only : Communications chiffrées end-to-end
  • Conformité RGPD : Respect des normes de protection des données

Technologies

Stack Technique

Backend

  • Go (Golang) : Langage principal pour l'API
  • Echo Framework : Framework web haute performance
  • PocketBase : Base de données et authentification
  • Crypto/x509 : Gestion native des certificats
  • Cron : Tâches planifiées pour monitoring

Infrastructure

  • Docker : Conteneurisation des applications
  • AWS ECS Fargate : Orchestration serverless
  • AWS Load Balancer : Répartition de charge
  • AWS Secrets Manager : Gestion des secrets

DevOps

  • GitLab CI/CD : Pipeline d'intégration continue
  • GitLab Registry : Registry privée Docker
  • AWS CLI : Déploiement automatisé
  • Python : Scripts d'automatisation CI/CD

Justifications Techniques

  • Go + Echo : Performance élevée et simplicité pour API REST
  • PocketBase : Solution tout-en-un pour auth et DB, simple à déployer
  • AWS ECS Fargate : Pas de gestion serveur, scaling automatique
  • GitLab CI/CD : Intégration native avec registry et simplicité
  • AES-256-GCM : Standard de chiffrement robuste pour les certificats

Résultats & Impact

Fonctionnalités Livrées

  • API REST complète avec 20+ endpoints
  • Support certificats CA, serveur et client
  • Génération avec algorithmes RSA et ECDSA
  • Vérification, renouvellement et révocation
  • Notifications automatiques d'expiration
  • Interface d'administration complète
  • Déploiement automatisé via CI/CD

Impact & Bénéfices

  • Sécurité renforcée : Centralisation et chiffrement des certificats
  • Automatisation : Réduction manuelle des tâches de gestion
  • Conformité : Respect des normes RGPD et ANSSI
  • Scalabilité : Architecture cloud-native évolutive
  • Monitoring proactif : Prévention des expirations

Apprentissages

  • Maîtrise de l'écosystème Go pour API REST haute performance
  • Intégration complexe GitLab CI/CD avec AWS ECS
  • Gestion sécurisée des secrets en environnement cloud
  • Architecture microservices et communication inter-services
  • Importance des tests et documentation dans un projet DevOps