Certificats VPN et migration PNCN¶
But¶
- Mise en conformité selon les préconisations de l'ANSSI
- Utiliser des certificats sha2
Prérequis¶
- Sphynx 2.4.2 (2.5.2 bientôt stable)
- Amon 2.4.0 minimum (2.5 recommandé)
Paramétrage du serveur Sphynx¶
Le serveur doit être paramétré pour être conforme à l'IGC PNCN.Lancer gen_config pour vérifier et adapter la configuration :
- Onglet Vpn-pki
- Utiliser la PKI PNCN à oui
- Localité (L=) doit être renseigné avec une ville
- Nom de l'organisation (O=) doit contenir Education Nationale
- Nom de l'unité de l'organisation (OU=) doit contenir 0002 110043015 et Academie de ....
- URL des listes de révocation de certificats (sinon rien) est optionnel, elles sont présentes dans chaque certificat
Lancer reconfigure pour prendre en compte ces modifications.
Cela permet de :- générer une configuration openssl conforme pour les requêtes de certificats auprès de la PNCN
- configurer ARV pour forcer un suffixe DNS au CN du certificat lors de la génération d'une requête
Mise à niveau des versions des serveurs EOLE¶
Le serveur Sphynx doit être en version 2.4.2 minimum.
Les serveurs Amon doivent être en version 2.4.x minimum.
- Vous disposez d'un Sphynx version 2.2 ou inférieur :
- Réinstallation du serveur Sphynx
- Vous disposez d'un Sphynx 2.3, 2.4.0 ou 2.4.1, 3 possibilités :
- Réinstallation du serveur Sphynx
- Migration du serveur existant
- Sauvegarde + réinstallation + restauration
- Vous disposez de serveurs Amon version 2.2 ou inférieur :
- Réinstallation du serveur au moment du passage à la PNCN
- Vous disposez de serveurs Amon 2.3, 2 possibilités :
- Réinstallation du serveur, même avant le passage à la PNCN
- Migration du serveur existant, même avant le passage à la PNCN
- Amon/Sphynx 2.3 vers Amon/Sphynx 2.4.2 : 1 heure
- Amon/Sphynx 2.4.x vers Amon/Sphynx 2.4.2 : 5 à 10 minutes
- reboot
- gen_config avec connexion Zéphir (adapter la configuration sur Sphynx)
- instance
- Régénérer la configuration IPsec :
- Pour Sphynx : se connecter sur ARV et cliquer sur Appliquer
- Pour Amon : lancer active_rvp init (un redémarrage de bastion peut-être nécessaire la première fois)
Prise en compte de la PNCN¶
Dans ARV, un modèle de lien associé à l'autorité de certification AC EN Scolarite et Formation doit exister.
- Sur une primo installation d'un serveur Sphynx 2.4.2 :
- enregistrer le serveur sur Zéphir
- lancer le script init_sphynx pour créer le modèle de lien
- Sur un serveur Sphynx déjà en production, encore configuré pour RACINE AGRIATES (migration ou réinstallation) :
- configurer le serveur pour utiliser la PNCN
- lancer le script init_pncn pour :
- cloner les modèles de liens existants associés à l'AC RACINE AGRIATES
- associer AC EN Scolarite et Formation à ces modèles clonés
- renommer les modèles de liens existants associés à l'AC RACINE AGRIATES en les préfixant par OLD_PKI_
On pourra ainsi utiliser les deux PKI simultanément et procéder à une migration progressive.
Sphynx peut avoir des connexions VPN basés sur RACINE AGRIATES et AC EN Scolarite et Formation.
Importer les certificats p12 fournis par la PNCN¶
L'importation de fichiers pkcs12 n'est pas prévue dans ARV. Ce format inclus la chaîne de certification jusqu'au certificat final ainsi que la clé privée.ARV peut importer les certificats et les clés privées mais dans des fichiers séparés. Il va falloir transformer ce fichier pksc12 en deux fichiers que ARV pourra importer.
- Script de conversion du fichier pkcs12
#!/bin/bash # Extraction de la chaîne de certification dans un fichier PKCS7 PEM # Extraction et chiffrement de la clé privée dans un fichier RSA PEM if [[ $# -ne 3 ]] then echo "Génération d'un fichier pksc7 et d'un fichier rsa argument 1 : fichier pkcs12 argument 2 : mot de passe du fichier pkcs12 argument 3 : mot de passe pour chiffrer la clé privée " exit 0 fi if [ ! -f $1 ] then echo "fichier $1 inexistant !!!" exit 1 fi TMP_CERT_FILE="certs.tmp" CERT_FILENAME=$(basename $1 | sed -e 's/\.p12$//') PKCS7_FILENAME="${CERT_FILENAME}.p7" PRIVKEY_FILENAME="priv-${CERT_FILENAME}.pem" # Extraction certificats + clé privée + chiffrement clé dans la foulée openssl pkcs12 -in $1 -passin pass:$2 -passout pass:$3 -out $TMP_CERT_FILE if [[ $? -ne 0 ]] then exit $? fi # On ne conserve que les lignes utiles sed -i '/-----BEGIN/,/-----END/!d' $TMP_CERT_FILE # Extraction de la clé privée chiffrée dans un fichier sed -e '/-----BEGIN ENCRYPTED PRIVATE KEY-----/,/-----END ENCRYPTED PRIVATE KEY-----/!d' $TMP_CERT_FILE > $PRIVKEY_FILENAME echo "Clé privée : $PRIVKEY_FILENAME" # On ne conserve que les certificats sed -i '/-----BEGIN ENCRYPTED PRIVATE KEY-----/,/-----END ENCRYPTED PRIVATE KEY-----/d' $TMP_CERT_FILE # Création d'un fichier pkcs7 contenant la chaîne de certification openssl crl2pkcs7 -nocrl -out $PKCS7_FILENAME -certfile $TMP_CERT_FILE if [[ $? -ne 0 ]] then exit $? fi echo "Fichier PKCS7 : $PKCS7_FILENAME" rm -rf $TMP_CERT_FILE
Génération de la configuration IPsec pour la PNCN¶
Dans l'application ARV, il doit exister un modèle de lien basé sur AC EN Scolarite et Formation.
Les serveurs doivent disposer de certificats issus de AC EN Scolarite et Formation.