Skip to content
Snippets Groups Projects

Configurer apache pour mettre en place une authentification CAE sur certains sous-réseaux

  • Clone with SSH
  • Clone with HTTPS
  • Embed
  • Share
    The snippet can be accessed without any authentication.
    Authored by Nicolas.Chuche

    Cette documentation explique comment configurer un reverse proxy apache pour mettre en place une couche d'authentification CAE sur des sous-réseaux (en l'occurence les sous-réseaux VPN : 10.234/16 à 10.239/16).

    Les étapes sont :

    1. ajout des certificats ANTS
    2. ajout des listes de révocations
    3. configuration du serveur apache

    ajout des certificats ANTS et personnes.

    Ces certificats vont permettrent d'authentifier les CAE.

    Le script certificates.sh ci-dessous télécharge les certificats racine IGC/A et les AC personne et les converti en PEM si besoin.

    Pour installer les certificats :

    1. Copiez le script sur le serveur (pas besoin d'être root)
    wget https://gitlab-forge.din.developpement-durable.gouv.fr/-/snippets/67/raw/main/certificates.sh?inline=false -O certificates.sh
    1. et lancez le
    bash certificates.sh

    Les certificats sont dans votre répertoire courant et ont des noms de la forme *-gen.crt

    1. copiez tous les fichiers *-gen.crt dans /etc/ssl/ac_personnes_aae/crt
    sudo mkdir -p /etc/ssl/ac_personnes_aae/crt
    sudo cp *-gen.crt /etc/ssl/ac_personnes_aae/crt
    1. mettez à jour les hash des certificats :
    sudo c_rehash /etc/ssl/ac_personnes_aae/crt

    Vos certificats sont maintenant disponible dans /etc/ssl/ac_personnes_aae/crt pour les utiliser dans votre configuration apache. Cette opération n'est à faire qu'une seule fois (enfin jusqu'à ce qu'un nouveau certificat sorte).

    ajout des listes de révocations

    Les listes de révocation permettent de bloquer les utilisateurs dont la CAE a été révoquée. Elles doivent être mises à jour.

    1. Téléchargez le script telecharge_liste_revocation.sh. Celui-ci télécharge les certificats dans /etc/ssl/ac_personnes_aae/crl/ par défaut et mets à jour les hash
    wget https://gitlab-forge.din.developpement-durable.gouv.fr/-/snippets/67/raw/main/telecharge_liste_revocation.sh?inline=false -O telecharge_liste_revocation.sh
    1. tester qu'il fonctionne en le lançant (en root ou en changeant la variable CERT_DIR). Vous devez obtenir un répertoire avec des fichiers *.crl et des liens de la forme :
    $ ls /etc/ssl/ac_personnes_aae/crl/
    194486b9.r0  41558b84.r0  5d950467.r0  88b9a685.r0  920b2d8d.r0             ac_personnes_aae_2.crl  ac_personnes_aae_4.crl   ac_racine_antsav3_2.crl  bcf3121f.r0
    300e8fd3.r0  5630168a.r0  70f754d6.r0  8a394128.r0  ac_personnes_aae_1.crl  ac_personnes_aae_3.crl  ac_racine_antsav3_1.crl  ba433d6a.r0              d3b1163d.r0
    1. s'il fonctionne, ajoutez le dans cron.daily pour qu'il soit lancé tous les jours

    configurer le apache

    Tous les certificats sont disponibles. Vous pouvez maintenant configurer apache en vous basant sur le fichier serveur.conf ci-dessous. attention, j'ai dramatiquement simplifié l'original, vous aurez peut-être un peu de débuggage à faire.

    Edited
    certificates.sh 1.23 KiB
    #!/bin/bash
    
    # script pour récupérer les certificats ANTS
    # et les convertir au format PEM si besoin
    
    # Nicolas Chuche
    # 2024/02/27 - changement des URL de l'AC racine
    
    set -e -u -o pipefail
    
    # récupération des certificats
    # on se pose pas de question, on récupère tout même les anciens
    for URL in https://cyber.gouv.fr/sites/default/files/document/certificat.crt \
                   https://sp.ants.gouv.fr/antsav3/ca_racine_antsav3_1_igca.cer \
                   https://sp.ants.gouv.fr/antsav3/ca_racine_antsav3_2_igca.cer \
                   https://sp.ants.gouv.fr/antsav3/ac_personnes_aae_1.cer \
                   https://sp.ants.gouv.fr/antsav3/ac_personnes_aae_2.cer \
                   https://sp.ants.gouv.fr/antsav3/ac_personnes_aae_3.cer \
                   https://sp.ants.gouv.fr/antsav3/ac_personnes_aae_4.cer; do
        wget $URL > /dev/null 2>&1
        SRC_NAME=$(basename $URL)
        # on change l'extension
        DEST_NAME=`echo $SRC_NAME | sed -e 's/\.[^.]*$/-gen.crt/'`
        echo $SRC_NAME
    
        # on convertit les certificats pas au bon format
        # on renomme les autres
        if file $SRC_NAME | grep 'PEM' > /dev/null 2>&1 ; then
           mv $SRC_NAME $DEST_NAME
        else
           openssl x509 -inform DER -in $SRC_NAME -out $DEST_NAME && rm $SRC_NAME
        fi
    done
    serveur.conf 2.51 KiB
    telecharge_liste_revocation.sh 1.09 KiB
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment