🛡️
EyoneMed PKI Portal
Infrastructure à clé publique sécurisée
pour les établissements de santé
Gestion des certificats — émission, révocation, renouvellement
Multi-organisations — cloisonnement par établissement
SSO & LDAP — intégration annuaire d'entreprise
Vault HashiCorp — secrets et CA gérés en sécurité
EyoneMed PKI  ·  Édition Commerciale
Connexion
Accédez à votre espace d'administration PKI
Choisissez votre organisation :
← Annuler
ou continuer avec
🔐
Double authentification
Entrez le code à 6 chiffres
de votre application d'authentification
Code perdu ? Code de récupération
Eyone Medical
⚕️ Eyone PKI Admin
Admin
Vault…
community
🔔 0
A
—
—
← Portail
Navigation
🏠 Dashboard
🔒 Certificats 0
👥 Utilisateurs
Gestion
🏥 Établissements
🏛️ Vault & PKI
Système
📋 Audit & Logs
💾 Backup & Restore
⚙️ Paramètres Email
⚙️ Paramètres Système
🔐 Authentifications & SSO
🔑 Clés API
📡 SIEM Export
📜 Conformité
🎨 White-Label
📱 SMS (Twilio)
🔐 HSM
🌍 Multi-Région
🔗 Plateformes
🖥️ Launcher
🏢 Sous-Organisations
🌐 Organisations
Vault actif
—
Tableau de bord
Vue d'ensemble du portail PKI Eyone Medical
🏠 Vue d'ensemble
📊 Évaluation déployeurs
Total émis
—
Actifs
—
Révoqués
—
dans la CRL
Expirés
—
à renouveler
Expirent <30j
—
🚨 Alertes actives
Tout voir →
Chargement…
🕐 Activité récente
Audit complet →
Chargement…
🏢 Par établissement
Chargement…
⚡ Santé Vault
…
Chargement…
…
🔄 Renouvellements à planifier
⭐ Commercial Voir tous →
Chargement…
📜 Derniers certificats
Tous →
CN / Utilisateur Établissement Pays Statut Expiration Installé Navigateur
Chargement…
Déployeurs
—
Certs générés
—
Installés
—
Actions risquées
—
🏆 Performance par déployeur
trié par score
Déployeur Rôle Générés Installés Taux Délai méd. (h) Étabs Pays 🔴 🟠 Échecs Score
Chargement…
⚠️ Journal des actions risquées
Chargement…
🌍 Couverture par pays
Chargement…
Certificats
Total : —
📋 Liste
🆕 Générer un certificat client
SérieCNGénéré parÉtablissement ExpirationStatutSourceInstalléActions
Chargement…
🆕 Génération manuelle d'un certificat client

Génère un certificat X.509 client au nom d'un utilisateur. Le fichier PKCS#12 est téléchargé automatiquement. Les exports PEM sont disponibles après génération.

⚠️ Certificat actif existant
Génération en cours…
✅ Certificat généré avec succès
CN Série Empreinte Validité Émetteur Mot de passe P12
Le ZIP (.p12 + .pem + .key + mot de passe) n'est téléchargeable qu'une seule fois : la clé privée n'est pas conservée côté serveur.
Utilisateurs
Gestion des comptes utilisateurs et administrateurs
UsernameNom completEmailDépartementRôleStatutDernière connexionActions
Chargement…
Établissements & Pays
Gestion des sites et des pays actifs
🌍 Pays
🏥 Établissements
CodeNomPrioritéStatutActions
Chargement…
Sous-orgPaysRégionNomCodeStatutActions
Chargement…
Vault & PKI
Configurations Vault, Autorités de Certification et CRL
🔑 Configurations Vault
📜 PKI / CA / CRL
🏛 Profils PKI
🖥️ Cert Serveur
Chargement…
🏛️ Autorité de Certification Root
Détails
PEM brut
Cliquez sur ↻ Actualiser AC
🔗 Intermediate CA
Détails
PEM brut
Cliquez sur ↻ Actualiser AC
⚙️ Configuration du rôle PKI
Cliquez sur Actualiser pour charger la config du rôle
📋 CRL — Liste de Révocation
Cliquez sur "Rotation CRL" pour actualiser.
NomVaultRoot mountInt mount RôleCertsStatutActions
Chargement…
🖥️ Génération de certificat serveur / TLS

Génère un certificat X.509 pour un serveur (hostname, IP SANs). Téléchargement en PKCS#12 + export PEM (cert, clé privée, chaîne complète).

Génération en cours…
✅ Certificat serveur généré
Série Empreinte Validité Mot de passe P12
Audit & Logs
Historique complet des événements système
📋 Événements
📦 Sessions d'installation
Chargement…
DateUtilisateurCNÉtablissementExpirationFingerprintStatutNavigateur
Chargement…
Backup & Restore
Sauvegardes système et guide de restauration
💾 Sauvegardes
📋 Historique
🌐 Destinations
⏰ Planification
📖 Restauration (How-to)
🔐 Clé de chiffrement
Sortie du script

        
DateFichierTailleStatutChecksumDisponibilité
Chargement…
DateFichierLancé parStatutVaultSQLiteArchiveDestinationsSortie
Chargement…
Chaque destination activée reçoit une copie de chaque backup. Activez-en autant que nécessaire (SFTP + S3 + MinIO…).
Chargement…
Destination de backup
✕
✓ Clé privée enregistrée — laisser vide pour la conserver.
MinIO uniquement. Laisser vide pour AWS S3.
✓ Secret enregistré — laisser vide pour le conserver.
⏰ Planification automatique
Backup automatique
Désactivé
📧 Notification email
Envoyer une notification après chaque backup

Envoie 2 emails de test : un de succès et un d'échec, pour prévisualiser les modèles.

↩ Restaurer depuis une sauvegarde

⚠ Opération critique — la base actuelle sera remplacée par celle de la sauvegarde.

Sélectionnez une sauvegarde dans l'onglet Sauvegardes et cliquez sur ↩ Restaurer. La sauvegarde est déchiffrée côté serveur avec DB_ENCRYPTION_KEY, validée, puis appliquée au prochain redémarrage (l'ancienne base est conservée en .pre-restore). L'application se reconnecte au Vault existant via la configuration restaurée.

ℹ️ Périmètre : seul l'état applicatif (base SQLite) est restauré. Les CAs et certificats vivent dans le Vault et relèvent de sa propre reprise. Si le token Vault a expiré après restauration, ressaisissez-le dans Paramètres → Vault.

🆕 Restauration vers une NOUVELLE installation (DR, via SSH)

Pour une reprise sur une install neuve (pas encore d'admin), utilisez le script CLI. Prérequis : la même DB_ENCRYPTION_KEY que l'installation d'origine — c'est la clé de reprise.

Étape 1 — Copier l'archive dans le conteneur
scp eyone-medical-backup-AAAA-MM-JJ.tar.gz.enc user@serveur:/tmp/
docker cp /tmp/eyone-medical-backup-....tar.gz.enc certportal-backend:/app/data/
Étape 2 — Restaurer dans le conteneur, puis redémarrer
docker exec -e DB_ENCRYPTION_KEY=<hex64> certportal-backend \
  node scripts/restore-backup.js /app/data/eyone-medical-backup-....tar.gz.enc
docker compose restart backend

Déchiffre (AES-256-GCM), vérifie l'intégrité + la clé, dépose la base ; le redémarrage l'applique. L'app se reconnecte au Vault existant.

Variante — clé reconstituée par parts (Shamir K-of-N)
# découper la clé (une fois) : N parts, seuil K
docker exec -e DB_ENCRYPTION_KEY=<hex64> certportal-backend node scripts/key-split.js 5 3

# restaurer avec K parts (aucune clé en clair)
docker exec certportal-backend node scripts/restore-backup.js \
  /app/data/backup....tar.gz.enc --shares <part1> <part3> <part5>
docker compose restart backend

Mode scellé au boot : retirez DB_ENCRYPTION_KEY et fournissez KEY_SHARES=part1,part2,part3 — la clé est reconstituée en mémoire au démarrage.

🔐 Clé de chiffrement (DB_ENCRYPTION_KEY)
Empreinte… Source…

Découpez la clé en N parts (seuil K) via Shamir : K parts suffisent à la reconstruire, K‑1 n'apprennent rien. À distribuer à des gardiens distincts, sur des canaux séparés.

⚠ Affichées une seule fois — copiez-les maintenant, elles ne sont pas stockées côté serveur.

          
        
Activer le mode scellé (la clé n'est plus en clair dans l'environnement) : retirez DB_ENCRYPTION_KEY et ajoutez KEY_SHARES=part1,part2,part3 (≥ K parts) à l'environnement du backend, puis redémarrez. Au boot, la clé est reconstruite en mémoire — la source affichée ci‑dessus passera à « shares ».
Paramètres Email & Notifications
Configuration SMTP, Slack et déclencheurs
📧 SMTP
💬 Slack
🔔 Déclencheurs
🔗 Liens Portail
🔄 Renouvellement
Chargement…
Chargement…
💬 Notifications Slack
Webhook entrant Slack par organisation — Créer un webhook
Chargement…
Événements notifiables : chargement…
Chargement…
🔗 Liens dans les modèles email

Ces URLs sont insérées dans les emails automatiques envoyés aux utilisateurs et administrateurs. Définissez l'URL complète (ex: https://pki.eyone.net).

Paramètres Système
Configuration système — super_admin uniquement
🔑 Changer mon mot de passe
ℹ️ Informations système
Version backend—
Base de donnéesSQLite WAL ✓
ChiffrementAES-256-GCM ✓
JWTHS256 8h ✓
Utilisateurs actifs—
🔐 Politique MFA
community
Chargement…
Authentifications & SSO
LDAP, Keycloak / OIDC — configurez les méthodes d'authentification SSO de votre organisation
🗂️ LDAP / AD
🔑 Keycloak / OIDC
🏛️ SAML 2.0
🗂️ Configuration LDAP / Active Directory
Non configuré
Membres de ce groupe → rôle admin. Vide → tous = user.
🧪 Tester l'authentification LDAP
Chargement…
➕ Ajouter un fournisseur OIDC
URL visible depuis le navigateur. Apparaît dans le claim iss du token JWT Keycloak.
Si le backend est dans Docker et ne peut pas atteindre localhost. Laissez vide si non nécessaire.
URL de callback vers laquelle Keycloak redirige après authentification. Doit correspondre exactement à la config client Keycloak.
Rôle realm Keycloak → rôle admin dans le portail.
🧪 Tester l'authentification SSO

Le test SSO complet se fait via le bouton "Se connecter via Keycloak" sur la page de login.

Après configuration, déconnectez-vous, sélectionnez votre organisation, et cliquez sur le bouton SSO.

Comptes de test Keycloak (Password1!) :
sophie.admin → rôle admin   pierre.dupont → rôle user   amina.test → rôle user
🏛️ Configuration SAML 2.0
Non configuré
📋 SP Metadata & Infos de configuration IdP

Chargement…

Container de test :
IdP SimpleSAMLphp : http://localhost:8887/simplesaml/ — admin / 123
user1 / user1pass · user2 / user2pass
Plateformes sécurisées
URLs des applications accessibles après génération de certificat
Chargement…
App de bureau (Launcher)
Builds, activation des postes et appareils enrôlés
📦 Releases
🔏 Signature de code
🔑 Activer un poste
🖥️ Appareils
📜 Historiques
Chargement…
🪟 Windows
ou importer un cert public :
🍎 macOS (Developer ID)

Chargement…
Chargement…
⭐ ÉDITION COMMERCIALE
L'infrastructure
PKI médicale.
Sans compromis.
Vous utilisez l'édition Community — conçue pour démarrer.
L'édition Commercial est faite pour ne jamais s'arrêter.
50+
Établissements
99.9%
SLA contractuel
HDS
ANS · ANSSI
< 4h
SLA support
"
Notre IGC hospitalière déployée en 3 semaines. La conformité HDS out-of-the-box nous a économisé 6 mois d'audit manuel.
— DSI · CHU de référence · 4 200 certificats
🏥
Rejoignez les établissements de santé qui font confiance à EyoneMed PKI Commercial pour leur infrastructure critique.
Fonctionnalité
Community
⭐ COMMERCIAL
Gestion & identité
🏢 Organisations
Gérez CHU, cliniques, labos depuis un seul panneau.
1 seule
∞ illimitées
🔑 SSO Entreprise
SAML 2.0 · LDAP/AD · OIDC · Keycloak · Azure AD · provisionnement auto.
✗
✓
🔐 MFA
Politique par org · TOTP · SMS · Email OTP · codes de récupération.
Basique
Avancé ✓
Conformité & sécurité
📋 Rapports HDS / ANSSI
ISO 27001 · RGPD · HDS en 1 clic · audit log horodaté NTP.
✗
✓
🛡️ Haute disponibilité
Cluster actif-passif · Vault multi-nœuds · RPO < 1 min · SLA 99.9%.
✗
✓
🏗️ PKI Hiérarchique
Root CA offline · Intermediate CAs illimités · cross-certification.
✗
✓
Opérations & intégration
🔄 Renouvellement auto
ACME · cert-manager · Ansible · alertes 30/15/7 jours avant expiration.
✗
✓
⚡ API REST & Webhooks
CI/CD natif · SDK Python & Node.js · Terraform · GitOps.
✗
✓
🤝 Support
CSM dédié · hotline · formation & onboarding inclus.
Communauté
SLA < 4h ✓
Prêt à franchir le cap ?
Démo personnalisée · Réponse garantie sous 24h · Migration sans interruption
📧 Demander une démo gratuite 📞 Appeler
🔒 Détail du certificat
✕
🚨 Révoquer le certificat
✕

Vous allez révoquer le certificat de . Cette action est irréversible.

Organisations —
✕
Affecter une organisation
Utilisateur
✕
Première appartenance du compte. D'autres organisations s'ajoutent via « 🏢 Orgs ».
🔑 Réinitialiser le mot de passe
✕

Nouveau mot de passe pour

Établissement
✕
Configuration Vault
✕
⚠ Ignorer la vérification SSL/TLS
À activer si Vault utilise un certificat auto-signé ou une CA privée
🏛 Profil PKI
✕
🔐 Sécurité du compte
✕
Chargement…
🔑 Codes de récupération
✕
⚠️ Conservez ces codes en lieu sûr. Ils ne seront jamais ré-affichés.
Chaque code est à usage unique. En cas de perte de votre téléphone, ils permettent de vous reconnecter.
💬 Webhook Slack
✕
Obtenir l'URL dans : api.slack.com → Incoming Webhooks
Chargement…
Configuration SMTP
✕
TLS/SSL (port 465)
📧 Test des modèles email
✕

Envoie 6 emails (un par type de déclencheur) au destinataire pour valider la configuration SMTP et prévisualiser les modèles.

Plateforme
✕
📋 Sortie du backup
✕

    
Confirmer
✕