Comment configurer l’autorité de certification sur Ubuntu/Debian
Une autorité de certification joue un rôle essentiel dans l’assurance et la vérification des connexions sécurisées entre les clients et les serveurs. Lorsque vous essayez de vous connecter à un serveur distant – disons un site Web, par exemple – comment votre système sait-il qu’il se connecte au bon endroit ? Après tout, rien n’empêche un système malveillant de se présenter comme un site Web, ce qu’il n’est pas. C’est là que les serveurs d’autorité de certification entrent en jeu, en aidant notre système client à vérifier que nous nous connectons au serveur prévu. Cet exemple particulier se trouve dans le contexte d’une connexion à un site Web, et implique donc le protocole HTTPS, mais les autorités de certification peuvent également être utilisées pour authentifier d’autres types de connexions, tels que les VPN.
Il existe un certain nombre d’autorités de certification universellement fiables (autorités de certification racines), ainsi qu’un grand nombre d’autorités de certification subordonnées qui se sont établies comme dignes de confiance par les autorités de certification racines. Mais il est également possible de créer votre propre autorité de certification. Tant que vos serveurs et leurs clients de connexion acceptent d’utiliser la même autorité de certification pour l’émission de certificats et l’authentification, nous pouvons gérer l’ensemble du processus d’autorité de certification en interne. Dans ce tutoriel, nous allons voir comment transformer un système Debian Linux ou Ubuntu en une autorité de certification.
Dans ce tutoriel, vous allez apprendre :
- Comment installer Easy-RSA pour établir l’autorité de certification
- Comment terminer la configuration initiale de
l’autoritéde certification et générer ca.key fichier
Mise en place d’une autorité de certification sur Ubuntu/Debian
Sans autorité de certification, il est facile pour les serveurs malveillants de se faire passer pour celui que nous voulons et d’obtenir des informations sensibles lorsque nous nous connectons à eux. Il est devenu courant pour les entreprises ou d’autres infrastructures réseau de créer leurs propres autorités de certification, car cela est moins cher que de payer pour une autorité officielle, et beaucoup plus flexible dans sa personnalisation. Une autorité de certification peut permettre aux utilisateurs de se connecter de manière fiable à un VPN, à un site Web sécurisé (HTTPS), de signer cryptographiquement des e-mails, et bien plus encore.
Dans les instructions ci-dessous, nous allons passer en revue le processus d’installation d’Easy-RSA afin d’utiliser un système en tant qu’autorité de certification sur Debian ou Ubuntu Linux.
Commencez par ouvrir un terminal en ligne de commande et installer le progiciel
easy-rsaavecapt:sudo apt install easy-rsaEasy-RSA sera l’outil que nous utiliserons pour générer une clé privée, qui signera ensuite les demandes des connexions clients entrantes qui ont besoin de l’autorité de certification pour vérifier l’identité d’un serveur.
Ensuite, commençons par la configuration d’Easy-RSA. Pour ce faire, nous allons créer un répertoire pour notre infrastructure à clé publique (PKI). Cela peut être nommé comme vous voulez, mais nous allons le garder simple à titre d’exemple :
mkdir ~/easy-rsaEnsuite, nous pouvons soit copier tous les fichiers Easy-RSA dans notre nouveau répertoire PKI, soit simplement créer un lien symbolique vers ceux-ci. L’avantage de créer le lien symbolique est que nous n’aurons pas besoin de modifier notre répertoire PKI en cas de futures mises à jour du package Easy-RSA. Exécutez la commande suivante pour créer le lien :
ln -s /usr/share/easy-rsa/* ~/easy-rsa/ cd ~/easy-rsaUne fois que nous sommes dans le répertoire
~/easy-rsa, nous exécutons le script qui l’initialise en tant que répertoire PKI../easyrsa init-pkiEnsuite, nous devons définir certaines variables dans notre configuration. Cela peut être fait en créant un fichier nommé vars à l’intérieur du répertoire PKI
~/easy-rsa.nano varsLe contenu suivant peut être collé à l’intérieur ; Il suffit de l’adapter pour qu’il reflète vos propres informations :
set_var EASYRSA_REQ_COUNTRY "US" set_var EASYRSA_REQ_PROVINCE "LA" set_var EASYRSA_REQ_CITY "Los Angeles" set_var EASYRSA_REQ_ORG "LinuxConfig.org" set_var EASYRSA_REQ_EMAIL "admin@linuxconfig.org" set_var EASYRSA_REQ_OU "Linux Tutorials" set_var EASYRSA_ALGO "ec" set_var EASYRSA_DIGEST "sha512"Après avoir modifié le fichier à votre satisfaction, enregistrez les modifications et quittez-le.
Ensuite, nous allons exécuter le script
build-ca. Cela créera l’autorité de certification, qui génère une paire de clés publique et privée../easyrsa build-caVous serez invité à entrer une phrase secrète qui sécurise la paire de clés. Entrez ensuite un nom qui représente votre serveur d’autorité de certification, tel que le nom d’hôte ou le nom d’utilisateur. Nous utilisons
linuxconfig-CAdans la capture d’écran ci-dessous :Votre serveur est maintenant prêt à agir en tant qu’autorité de certification. Tous les clients qui ont besoin d’interagir avec votre autorité de certification auront besoin d’une copie du fichier
ca.crt, qui doit être stocké dans le répertoire~/easy-rsa/pki, si vous nous avez suivis.cat ~/easy-rsa/pki/ca.crtC’est à vous de décider comment vous choisissez de distribuer le fichier, mais tous les clients qui se connectent auront besoin d’une copie de celui-ci.
AVERTISSEMENT
Assurez-vous de sécuriser votre fichierca.key. Ce fichier est stocké dans~/easy-rsa/pki/private/ca.keyet ne doit jamais quitter le système. Si ce fichier est compromis, l’objectif de l’AC sera rendu inutile.
Importation d’une autorité de certification
Sur les systèmes clients, vous devrez recevoir le fichier ca.crt (généré ci-dessus) du serveur de l’autorité de certification. Ce fichier est facile à identifier car il commencera par la ligne : ----BEGIN CERTIFICATE----.
Pour ajouter l’autorité de certification sur Debian et Ubuntu, nous copierons le fichier ca.crt dans le répertoire suivant :
sudo cp ca.crt /usr/local/share/ca-certificates
Ensuite, nous devons mettre à jour la liste des certificats pour que les modifications prennent effet en exécutant la commande ci-dessous :
sudo update-ca-certificates
C’est tout ce qu’il y a à faire. Vous devez maintenant pouvoir vous connecter aux serveurs privés authentifiés par l’autorité de certification.
Notez que certaines applications peuvent nécessiter l’importation manuelle de l’autorité de certification et ne sonderont pas elles-mêmes le répertoire /usr/local/share/ca-certificates. Pour plus d’informations, consultez notre tutoriel sur notre Guide étape par étape : Ajouter des certificats au tutoriel Autorités de confiance d’Ubuntu, qui comprend des instructions pour ajouter une autorité de confiance à Mozilla Firefox.
Comment signer un CSR
Un CSR (Certificate Signing Request) se présente sous la forme d’un fichier .req. Celui-ci est généré par un client ou un serveur qui souhaite utiliser l’autorité de certification pour obtenir un certificat capable de vérifier son identité. Supposons que nous recevions un fichier .req d’un serveur pour lequel nous voulons signer un certificat. Voici le processus :
Nous exécuterons le script
easyrsapour signer le CSR. Spécifiez l’optionimport-reqsuivie du nom du fichier et du nom commun que vous souhaitez utiliser pour identifier le serveur :./easyrsa import-req example-server.req example-serverEnsuite, nous signons la demande avec l’option
sign-req. Nous devons également spécifier le type de requête, qui peut êtreclient,serveurouca. Dans cet exemple, nous signons le CSR d’un serveur :./easyrsa sign-req server example-server
Le résultat final est un fichier example-server.crt. Ce fichier, ainsi que le fichier ca.crt de la première section, devront être remis au serveur. Ensuite, ce serveur peut montrer à tous les clients qui se connectent qu’il est digne de confiance, car il possède un certificat signé d’un serveur d’autorité de certification mutuelle.
Réflexions finales
Dans ce tutoriel, nous avons vu comment configurer une autorité de certification sur un système Linux Ubuntu ou Debian. Il s’agissait d’utiliser le logiciel Easy-RSA pour initialiser le système en tant qu’autorité de certification. Ensuite, nous avons généré un fichier ca.crt, qui doit être distribué aux autres serveurs et clients de notre réseau. Nous avons également appris à signer une demande de signature de certificat, qui accorde un certificat à un serveur ou à un client et vérifie qu’il est légitime auprès d’autres systèmes de connexion qui font confiance à la même autorité de certification.


