Files
s-informer-sur-la-tech-www/articles/2026/Installer un serveur de cache APT avec https.md

3.6 KiB

title, description, tags, date, lastmod, type, category, status
title description tags date lastmod type category status
Installer un serveur de cache APT avec https
2026-02-28 01:25 2026-02-28 01:28
article
Guide
brouillon

Pour mettre en cache du contenu HTTPS (et donc réellement économiser de la bande passante sur des dépôts comme Docker, Nodesource ou Google Cloud), la méthode "PassThrough" ne suffit plus car elle ne fait que laisser passer le flux chiffré sans le lire.

Pour que le serveur de cache puisse lire et stocker le contenu, il doit intercepter la connexion. Voici comment configurer une architecture Man-in-the-Middle (MitM) propre et sécurisée pour votre infrastructure locale.


Le Concept : Proxy HTTPS Transparent

Dans ce scénario, nous allons utiliser Squid avec la fonctionnalité SSL Peek-and-Splice.

  1. Le serveur de cache possède sa propre Autorité de Certification (CA).

  2. Vous installez ce certificat CA sur tous vos clients comme "Autorité de confiance".

  3. Lorsqu'un client demande un paquet via HTTPS, le serveur génère un certificat à la volée, déchiffre la requête, vérifie son cache, et rechiffre le flux vers le client.


1. Génération du certificat CA auto-signé

Sur votre serveur de cache, générez la clé et le certificat qui serviront à signer les requêtes interceptées :

Bash

# Créer un dossier pour les certificats
sudo mkdir -p /etc/squid/ssl_cert
sudo openssl req -new -newkey rsa:2048 -sha256 -days 3650 -nodes -x509 \
  -extensions v3_ca -keyout /etc/squid/ssl_cert/myCA.pem  \
  -out /etc/squid/ssl_cert/myCA.pem

Important : Le fichier myCA.pem contient votre clé privée. Protégez-le avec des permissions strictes (chmod 400).


2. Configuration de Squid (Serveur de Cache)

Installez Squid avec le support SSL (vérifiez que votre version supporte --with-openssl) :

Bash

sudo apt update && sudo apt install squid -y

Modifiez la configuration /etc/squid/squid.conf pour inclure ces directives :

Plaintext

# Port d'écoute avec interception SSL
http_port 3128 ssl-bump \
  cert=/etc/squid/ssl_cert/myCA.pem \
  generate-host-certificates=on dynamic_cert_mem_cache_size=4MB

# Définition de la stratégie d'interception
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all

# Cache des fichiers (ajustez la taille selon vos besoins)
cache_dir ufs /var/spool/squid 10000 16 256
maximum_object_size 1024 MB

Initialisez la base de données des certificats dynamiques :

Bash

sudo /usr/lib/squid/security_file_certgen -c -s /var/lib/squid/ssl_db -M 4MB
sudo chown -R proxy:proxy /var/lib/squid/ssl_db
sudo systemctl restart squid

3. Configuration du Client (Étape CRUCIALE)

Sans cette étape, vos clients bloqueront la connexion pour "tentative d'interception" (HSTS/SSL Pinning).

A. Importer le certificat CA

Copiez le fichier myCA.pem du serveur vers le client, puis :

Bash

sudo cp myCA.pem /usr/local/share/ca-certificates/my-proxy-ca.crt
sudo update-ca-certificates

B. Configurer APT pour utiliser le proxy

Éditez /etc/apt/apt.conf.d/00proxy :

Plaintext

Acquire::http::Proxy "http://IP_SERVEUR:3128";
Acquire::https::Proxy "http://IP_SERVEUR:3128";

Avantages et Risques

Avantages Risques / Inconvénients
Vraie mise en cache du HTTPS (Gain de temps massif). Point de défaillance unique pour la sécurité.
Réduction drastique de la bande passante externe. Nécessite d'installer le certificat sur chaque client.
Contrôle total sur les paquets entrant dans le réseau. Incompatible avec certains dépôts qui utilisent le Certificate Pinning.