Parce que la création des certificat est plutôt complexe, je préfère utiliser des outils graphiques plus intuitifs. Aujourd’hui, je vous montre comment créer une autorité de certification (CA) et un certificat pour serveur web.
Que ce soit pour administrer mes propres services ou tester des communications sécurisées (i.e. HTTPS
, SAML
, …), l’étape de création des certificats, et de la PKI correspondante, est incontournable.
Je ne sais pas vous, mais moi, ça n’est pas vraiment mon étape préférée. Je ne trouve pas la documentation ni l’usage de openssl(1)
particulièrement agréable alors, sans aucune honte, je préfère les solutions graphiques…
Avant de commencer
Installer XCA
XCA est l’application graphique que je préfère pour gérer mes PKI
. Il permet de créer les clés, les certificats et les demandes de signatures très intuitivement. Et à la fin, d’exporter le tout facilement.
La page de téléchargement propose tout le nécessaire pour obtenir l’application :
- Un exécutable Windows pour l’installer,
- Une archive portable pour l’exécuter sous Windows sans l’installer,
- Un package pour les utilisateurs de Mac,
- Une archive contenant le code source si vous voulez le compiler vous-même.
Sous Linux, la plupart des distributions ont un package xca
installable en une ligne de commande.
Sous Debian, Ubuntu et ses dérivés, le package est disponible par défaut.
Pour Red Hat, Centos et ses dérivés, il vous faudra d’abord installer les dépôts additionnels (EPEL
) mais une fois fait, xca
est disponible en une ligne :
Créer une Base de donnée
Pour stocker vos certificats, et surtout vos clés privées, xca
utilise un fichier chiffré spécifique qu’il vous est donc nécessaire de créer.
Pour cela, allez dans le menu Fichier / Nouvelle base de données, choisissez l’emplacement de votre fichier, donnez lui un nom et enregistrez. L’écran suivant vous demande d’entrer un mot de passe pour sécuriser votre fichier.

Créer la CA
Sans surprise, la première chose à créer est la CA, qui nous servira à signer nos autres certificats. Et pour cela, on va dans l’onglet certificats et on clique sur le bouton Nouveau Certificat.

Source
xca
ouvrira une nouvelle fenêtre permettant de configurer finement le certificat. Nous n’allons ici que configurer le minimum à travers deux des onglets, source et sujet.
L’onglet Source, ouvert par défaut, permet de configurer le type de certificat comme suit :
- Signer : laisser créer un certificat auto-signé,
- Algorithme de signature : on laisse SHA 256 1,
- Modèle pour le nouveau certificat : choisir [Default] CA,

Je vous conseille vivement de cliquer ensuite sur le bouton Appliquer tout. Ce qui vous simplifiera les étapes suivantes, comme les extensions, l’utilisation de la clé et autres onglets. Si vous savez ce que vous faites, vous pouvez aussi ne rien appliquer et configurer tous ces aspects manuellement.
Sujet
Le deuxième onglet permet de configurer le sujet, c’est à dire la carte d’identité du certificat. Si vous créez une PKI pour faire des tests, seul les deux champs suivants sont importants :
- Nom Interne : qui est utilisé pour l’affichage dans
xca
, - commonName : qui est le nom du certificat et l’identifie dans toutes les autres applications.

Si vous voulez l’utiliser en vrai, les autres champs sont également utiles mais puisqu’il s’agit de votre propre CA, ces champs sont à but informatif.
Dans tous les cas, assurez vous de fournir une clé privée. Pour cela, cliquez simplement sur le bouton Générer une nouvelle clé
.
Un pop-up s’ouvrira vous demandant des précisions :
- Nom : utilisé dans
xca
pour le lister, personnellement, je met le cn du certificat. - Type de clé : algorithme asymétrique pour lequel la clé est utilisée, la valeur par défaut,
RSA
, correspond à la plupart des cas. - Taille de la clé : la valeur par défaut est un peu dépassée, l’ANSSI conseille 3072 bits2.

Cliquer sur Créer
et après un court délai, XCA vous informera avoir réussi.
Pour notre cas, nous n’avons pas besoin de configurer les autres onglets, on clique donc sur OK
.
Créer le certificat serveur
Partant du principe que vous voulez créer votre PKI
pour un serveur (i.e. web), nous pouvons passer au certificat serveur.
De retour dans l’écran des certificats, on clique donc sur Nouveau Certificat
.

Source
On retrouve la même fenêtre que précédemment mais cette fois, nous allons changer quelques paramètres.
- Signer : choisir utiliser ce certificat pour signer puis choisir votre CA,
root.example.com
- Modèle pour le nouveau certificat : choisir [Default] HTTPS_server.

Encore une fois, je vous conseille de cliquer sur Appliquer tout
, ce qui évitera de configurer les onglets suivants.
Sujet
Comme précédemment, nous poursuivons avec la carte d’identité du certificat dans l’onglet Sujet.
- Nom Interne : comme précédemment, il n’est utilisé que pour l’affichage.
- CommonName : doit correspondre au nom d’hôte de votre serveur web,
www.example.com
par exemple.
Le CommonName était initialement utilisé pour vérifier que le certificat correspondait au site qui l’utilisait mais cette utilisation est maintenant considérée comme obsolète, chrome et firefox ne se basent plus sur ce champ, ce qui nécessite la configuration des extensions comme nous allons le voir ensuite.
Les autres champs sont à but informatif et ne sont important que si vous vouliez faire signer votre certificat par une autorité de certification. C’est à partir de ces données que l’autorité vérifiera votre identité et signera votre certificat.
Ici, puisque nous créons notre propre PKI
, ces champs n’auront pas d’impact.

Comme précédemment, il faut également Générer une nouvelle clé privée.
Extensions
Puisqu’il s’agit d’un certificat pour un serveur, nous devons également configurer l’onglet suivant, Extensions car celles-ci seront utilisées pour valider les communications.
Comme nous l’avons dit à propos du champ CommonName, il faut maintenant utiliser une extension pour spécifier le nom de votre site :
- X509v3 Subject Alternative Name : plus habituellement appelée par son petit nom
SAN
. Pour le configurer, il faut cliquer sur Modifier.
xca
ouvre alors un pop-up qui nous permet d’ajouter les extensions. Ici, nous n’allons ajouter qu’une seule entrée DNS, mais suivant votre situation, vous pouvez en mettre plusieurs, y compris des adresses IP.
- Type : choisir DNS
- Contenu : y mettre votre nom de domaine (i.e.
www.example.com
).
Cliquer sur Appliquer
pour prendre en compte l’extension.
Vu que nous n’avons pas besoin de paramètres supplémentaires pour ce certificat, cliquez sur ok
.
Exporter
À ce stade, les certificats et les clés n’existent que dans la base de donnée de xca
que vous avez créée. Il est donc temps de les exporter pour pouvoir les inclure dans vos logiciels.
Les certificats
Depuis l’application, dans l’onglet Certificats, cliquez sur le bouton Exporter
.

xca
ouvre un popup qui vous demande quelques paramètres pour l’export :
- Nom du fichier : choisissez le fichier dans lequel vous voulez exporter votre certificat. Personnellement, je préfère ajouter une extension
.crt
pour me souvenir plus facilement qu’il s’agit d’un certificat. - Format d’exportation : à moins d’avoir des besoins très spécifiques, et dans ce cas là, vous saurez ce que vous faites, laissez tel quel,
PEM (*.crt)
.
Cliquez ensuite sur OK
pour que xca
exporte votre certificat dans le fichier. Vous pourrez ensuite le déployer :
- La CA devrait être déployée sur tous les postes de votre réseau, ainsi que chez vos clients, partenaires et autres relations qui auraient besoin de communiquer avec votre serveur,
- Le certificat du serveur devra être déployé sur ce dernier et puisque vous avez déployé la CA, il n’y a pas besoin de déployer votre certificat ailleurs (c’est d’ailleurs tout l’intérêt d’une CA).
Les clés
Depuis l’application, dans l’onglet Clés privées, cliquez sur le bouton Exporter
.
Comme précédemment, xca
ouvrira un pop-up pour personnaliser l’export.
- Nom du fichier : choisissez le fichier dans lequel vous voulez exporter votre certificat. Personnellement, je préfère ajouter une extension
.key
pour me souvenir plus facilement qu’il s’agit d’un certificat, mais vous pouvez laisser.pem
, les logiciels ne font pas la différence. - Format d’exportation : à moins d’avoir des besoins très spécifiques, et dans ce cas là, vous saurez ce que vous faites, laissez tel quel,
PEM (*.pem)
.
Cliquez ensuite sur OK
pour que xca
exporte votre clé privée dans le fichier.
⚠️ Ce fichier doit être stocké de manière sécurisée car quiconque en prend connaissance peut vous usurper (signer ses propres certificats, intercepter vos communications, …).
Pour notre exemple, seule la clé du serveur a de sens à être exportée puis copiée sur le serveur correspondant. La clé de la CA ne servant qu’à signer les certificats, n’a pas besoin d’être exportée. Si vous souhaitez effectuer une copie de sauvegarde, copiez la base de donnée plutôt que les exports.
Et Après ?
- C’est quoi une PKI ?
19 septembre 2019 À force d’en parler, c’est presque devenu un buzzword vide de sens. Démystifions donc ce concept pour voir ce qu’il apporte et comment s’en servir à propos.
- Utiliser ses propres certificats avec Ubuntu Landscape
3 Octobre 2019 Ubuntu Landscape est un outil très pratique pour maintenir à jour son parc de machines Ubuntu. Mais qu’il utilise nos certificats plutôt que ses auto-signés, ça serait mieux.
- Cryptologie en général
Science du secret, dont l’objet principal est la protection des correspondances et autres communications.
Ce qui est conforme à la section 2.3 des recommandations de l’ANSSI.↩︎
Dont vous trouverez la justification dans la section 2.2.1.1 des recommandations de l’ANSSI. Bien qu’aucune clé de moins de 1024 bits n’ait été publiquement factorisée à ce jours, l’ANSSI considère qu’ajouter une marge est nécessaire pour rester prudent.↩︎