GNU/Linux >> Tutoriels Linux >  >> Panels >> OpenVPN

Comment configurer et configurer une autorité de certification sur Ubuntu 22.04

Introduction

Une autorité de certification (CA) est une entité chargée de délivrer des certificats numériques pour vérifier les identités sur Internet. Bien que les autorités de certification publiques soient un choix populaire pour vérifier l'identité des sites Web et d'autres services fournis au grand public, les autorités de certification privées sont généralement utilisées pour les groupes fermés et les services privés.

La création d'une autorité de certification privée vous permettra de configurer, de tester et d'exécuter des programmes qui nécessitent des connexions cryptées entre un client et un serveur. Avec une autorité de certification privée, vous pouvez émettre des certificats pour des utilisateurs, des serveurs ou des programmes et services individuels au sein de votre infrastructure.

Quelques exemples de programmes sous Linux qui utilisent leur propre autorité de certification privée sont OpenVPN et Puppet . Vous pouvez également configurer votre serveur Web pour utiliser des certificats émis par une autorité de certification privée afin de faire correspondre les environnements de développement et de préproduction aux serveurs de production qui utilisent TLS pour chiffrer les connexions.

Dans ce guide, vous allez configurer une autorité de certification privée sur un serveur Ubuntu 22.04, puis générer et signer un certificat de test à l'aide de votre nouvelle autorité de certification. Vous apprendrez également à importer le certificat public du serveur CA dans le magasin de certificats de votre système d'exploitation afin de pouvoir vérifier la chaîne de confiance entre l'autorité de certification et les serveurs ou utilisateurs distants. Enfin, vous apprendrez à révoquer des certificats et à distribuer une liste de révocation de certificats pour vous assurer que seuls les utilisateurs et les systèmes autorisés peuvent utiliser les services qui dépendent de votre autorité de certification.

Prérequis

Pour terminer ce didacticiel, vous aurez besoin d'accéder à un serveur Ubuntu 22.04 pour héberger votre serveur CA. Vous devrez configurer une non-racine utilisateur avec sudo privilèges avant de commencer ce guide. Vous pouvez suivre notre guide de configuration initiale du serveur Ubuntu 22.04 pour configurer un utilisateur avec les autorisations appropriées. Le didacticiel lié configurera également un pare-feu , qui est supposé être en place tout au long de ce guide.

Ce serveur sera appelé le serveur CA dans ce tutoriel.

Assurez-vous que le serveur CA est un système autonome. Il ne sera utilisé que pour importer, signer et révoquer les demandes de certificat. Il ne doit pas exécuter d'autres services et, idéalement, il sera hors ligne ou complètement arrêté lorsque vous ne travaillez pas activement avec votre autorité de certification.

Remarque : La dernière section de ce didacticiel est facultative si vous souhaitez en savoir plus sur la signature et la révocation de certificats. Si vous choisissez de suivre ces étapes pratiques, vous aurez besoin d'un deuxième serveur Ubuntu 22.04 ou vous pouvez également utiliser votre propre ordinateur Linux local exécutant Ubuntu ou Debian, ou des distributions dérivées de l'un ou l'autre.

Étape 1 — Installation d'Easy-RSA

La première tâche de ce tutoriel consiste à installer le easy-rsa ensemble de scripts sur votre serveur CA. easy-rsa est un outil de gestion d'autorité de certification que vous utiliserez pour générer une clé privée et un certificat racine public, que vous utiliserez ensuite pour signer les demandes des clients et des serveurs qui s'appuieront sur votre autorité de certification.

Connectez-vous à votre serveur CA en tant qu'utilisateur sudo non root que vous avez créé lors des étapes de configuration initiales et exécutez ce qui suit :

  1. sudo apt update
  2. sudo apt install easy-rsa

Vous serez invité à télécharger le package et à l'installer. Appuyez sur y pour confirmer que vous souhaitez installer le package.

À ce stade, vous avez tout ce dont vous avez besoin configuré et prêt à utiliser Easy-RSA. À l'étape suivante, vous allez créer une infrastructure à clé publique, puis commencer à créer votre autorité de certification.

Étape 2 - Préparation d'un répertoire d'infrastructure à clé publique

Maintenant que vous avez installé easy-rsa , il est temps de créer un squelette d'infrastructure à clé publique (PKI) sur le serveur CA. Assurez-vous que vous êtes toujours connecté en tant qu'utilisateur non root et créez un easy-rsa annuaire. Assurez-vous que vous n'utilisez pas sudo pour exécuter l'une des commandes suivantes, car votre utilisateur normal doit gérer et interagir avec l'autorité de certification sans privilèges élevés.

  1. mkdir ~/easy-rsa

Cela créera un nouveau répertoire appelé easy-rsa dans votre dossier personnel. Nous allons utiliser ce répertoire pour créer des liens symboliques pointant vers le easy-rsa fichiers de package que nous avons installés à l'étape précédente. Ces fichiers se trouvent dans le répertoire /usr/share/easy-rsa dossier sur le serveur CA.

Créez les liens symboliques avec le ln commande :

  1. ln -s /usr/share/easy-rsa/* ~/easy-rsa/

Remarque : Alors que d'autres guides peuvent vous demander de copier le easy-rsa fichiers de package dans votre répertoire PKI, ce didacticiel adopte une approche de lien symbolique. Par conséquent, toute mise à jour de easy-rsa sera automatiquement reflété dans les scripts de votre PKI.

Pour restreindre l'accès à votre nouveau répertoire PKI, assurez-vous que seul le propriétaire peut y accéder en utilisant le chmod commande :

  1. chmod 700 /home/sammy/easy-rsa

Enfin, initialisez la PKI à l'intérieur du easy-rsa répertoire :

  1. cd ~/easy-rsa
  2. ./easyrsa init-pki
Outputinit-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home/sammy/easy-rsa/pki

Après avoir terminé cette section, vous disposez d'un répertoire contenant tous les fichiers nécessaires à la création d'une autorité de certification. Dans la section suivante, vous allez créer la clé privée et le certificat public pour votre autorité de certification.

Étape 3 - Création d'une autorité de certification

Avant de pouvoir créer la clé privée et le certificat de votre autorité de certification, vous devez créer et remplir un fichier appelé vars avec quelques valeurs par défaut. Vous allez d'abord cd dans le easy-rsa répertoire, puis vous allez créer et modifier le vars fichier avec nano ou votre éditeur de texte préféré :

  1. cd ~/easy-rsa
  2. nano vars

Une fois le fichier ouvert, collez les lignes suivantes et modifiez chaque valeur en surbrillance pour refléter les informations de votre propre organisation. L'important ici est de s'assurer que vous ne laissez aucune des valeurs vides :

~/easy-rsa/varsset_var EASYRSA_REQ_COUNTRY    "US"
set_var EASYRSA_REQ_PROVINCE   "NewYork"
set_var EASYRSA_REQ_CITY       "New York City"
set_var EASYRSA_REQ_ORG        "DigitalOcean"
set_var EASYRSA_REQ_EMAIL      "[email protected]"
set_var EASYRSA_REQ_OU         "Community"
set_var EASYRSA_ALGO           "ec"
set_var EASYRSA_DIGEST         "sha512"

Lorsque vous avez terminé, enregistrez et fermez le fichier. Si vous utilisez nano , vous pouvez le faire en appuyant sur CTRL+X , puis Y et ENTER confirmer. Vous êtes maintenant prêt à créer votre autorité de certification.

Pour créer la paire de clés publique et privée racine pour votre autorité de certification, exécutez le ./easy-rsa commande à nouveau, cette fois avec le build-ca choix :

  1. ./easyrsa build-ca

Dans la sortie, vous verrez quelques lignes sur la version d'OpenSSL et vous serez invité à entrer une phrase secrète pour votre paire de clés. Assurez-vous de choisir une phrase de passe forte et notez-la dans un endroit sûr. Vous devrez saisir la phrase secrète chaque fois que vous aurez besoin d'interagir avec votre autorité de certification, par exemple pour signer ou révoquer un certificat.

Il vous sera également demandé de confirmer le nom commun (CN) de votre autorité de certification. Le CN est le nom utilisé pour désigner cette machine dans le contexte de l'autorité de certification. Vous pouvez entrer n'importe quelle chaîne de caractères pour le nom commun de l'autorité de certification, mais pour des raisons de simplicité, appuyez sur ENTRÉE pour accepter le nom par défaut.

Output. . .
Enter New CA Key Passphrase:
Re-Enter New CA Key Passphrase:
. . .
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/home/sammy/easy-rsa/pki/ca.crt

Remarque : Si vous ne souhaitez pas être invité à entrer un mot de passe à chaque fois que vous interagissez avec votre autorité de certification, vous pouvez exécuter le build-ca commande avec le nopass option, comme ceci :

  1. ./easyrsa build-ca nopass

Vous avez maintenant deux fichiers importants — ~/easy-rsa/pki/ca.crt et ~/easy-rsa/pki/private/ca.key — qui constituent les composants public et privé d'une autorité de certification.

  • ca.crt est le fichier de certificat public de l'autorité de certification. Les utilisateurs, les serveurs et les clients utiliseront ce certificat pour vérifier qu'ils font partie du même réseau de confiance. Chaque utilisateur et serveur qui utilise votre autorité de certification devra avoir une copie de ce fichier. Toutes les parties s'appuieront sur le certificat public pour s'assurer que quelqu'un ne se fait pas passer pour un système et n'exécute pas une attaque de type Man-in-the-middle.

  • ca.key est la clé privée que l'autorité de certification utilise pour signer les certificats des serveurs et des clients. Si un attaquant parvient à accéder à votre autorité de certification et, à son tour, à votre ca.key fichier, vous devrez détruire votre CA. C'est pourquoi votre ca.key le fichier doit uniquement être sur votre machine CA et que, idéalement, votre machine CA devrait être maintenue hors ligne lorsqu'elle ne signe pas de demandes de certificat comme mesure de sécurité supplémentaire.

Avec cela, votre autorité de certification est en place et elle est prête à être utilisée pour signer des demandes de certificat et pour révoquer des certificats.

Étape 4 :Distribution du certificat public de votre autorité de certification

Votre autorité de certification est maintenant configurée et prête à agir en tant que racine de confiance pour tous les systèmes que vous souhaitez configurer pour l'utiliser. Vous pouvez ajouter le certificat de l'autorité de certification à vos serveurs OpenVPN, serveurs Web, serveurs de messagerie, etc. Tout utilisateur ou serveur qui a besoin de vérifier l'identité d'un autre utilisateur ou serveur de votre réseau doit avoir une copie du ca.crt fichier importé dans le magasin de certificats de leur système d'exploitation.

Pour importer le certificat public de l'autorité de certification dans un deuxième système Linux comme un autre serveur ou un ordinateur local, obtenez d'abord une copie du ca.crt fichier de votre serveur CA. Vous pouvez utiliser le cat pour le sortir dans un terminal, puis copiez-le et collez-le dans un fichier sur le deuxième ordinateur qui importe le certificat. Vous pouvez également utiliser des outils comme scp , rsync pour transférer le fichier entre les systèmes. Cependant, nous utiliserons le copier-coller avec nano dans cette étape car cela fonctionnera sur tous les systèmes.

En tant qu'utilisateur non root sur le serveur CA, exécutez la commande suivante :

  1. cat ~/easy-rsa/pki/ca.crt

Il y aura une sortie dans votre terminal qui ressemblera à ce qui suit :

Output-----BEGIN CERTIFICATE-----
MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQEL
BQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw
. . .
. . .
-----END CERTIFICATE-----

Copiez tout, y compris le -----BEGIN CERTIFICATE----- et -----END CERTIFICATE----- les lignes et les tirets.

Sur votre deuxième système Linux, utilisez nano ou votre éditeur de texte préféré pour ouvrir un fichier appelé /tmp/ca.crt :

  1. nano /tmp/ca.crt

Collez le contenu que vous venez de copier du serveur CA dans l'éditeur. Lorsque vous avez terminé, enregistrez et fermez le fichier. Si vous utilisez nano , vous pouvez le faire en appuyant sur CTRL+X , puis Y et ENTER pour confirmer.

Maintenant que vous avez une copie du ca.crt fichier sur votre deuxième système Linux, il est temps d'importer le certificat dans le magasin de certificats de son système d'exploitation.

Sur les systèmes basés sur Ubuntu et Debian, exécutez les commandes suivantes en tant qu'utilisateur non root pour importer le certificat :

Distributions dérivées d'Ubuntu et de Debian
  1. sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
  2. sudo update-ca-certificates

Pour importer le certificat du serveur CA sur un système basé sur CentOS, Fedora ou RedHat, copiez et collez le contenu du fichier sur le système comme dans l'exemple précédent dans un fichier appelé /tmp/ca.crt . Ensuite, vous copierez le certificat dans /etc/pki/ca-trust/source/anchors/ , puis exécutez le update-ca-trust commande.

Distributions CentOS, Fedora, RedHat
  1. sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
  2. sudo update-ca-trust

Désormais, votre deuxième système Linux fera confiance à tout certificat signé par le serveur CA.

Remarque : Si vous utilisez votre autorité de certification avec des serveurs Web et utilisez Firefox comme navigateur, vous devrez importer le public ca.crt certificat dans Firefox directement. Firefox n'utilise pas le magasin de certificats du système d'exploitation local. Pour plus de détails sur la façon d'ajouter le certificat de votre autorité de certification à Firefox, veuillez consulter cet article d'assistance de Mozilla sur la configuration des autorités de certification (AC) dans Firefox.

Si vous utilisez votre autorité de certification pour l'intégrer à un environnement Windows ou à des ordinateurs de bureau, veuillez consulter la documentation sur l'utilisation de certutil.exe pour installer un certificat CA.

Si vous utilisez ce didacticiel comme condition préalable à un autre didacticiel ou si vous savez comment signer et révoquer des certificats, vous pouvez vous arrêter ici. Si vous souhaitez en savoir plus sur la façon de signer et de révoquer des certificats, la section facultative suivante expliquera chaque processus en détail.

(Facultatif) — Création de demandes de signature de certificat et révocation de certificats

Les sections suivantes du didacticiel sont facultatives. Si vous avez terminé toutes les étapes précédentes, vous disposez d'une autorité de certification entièrement configurée et fonctionnelle que vous pouvez utiliser comme prérequis pour d'autres didacticiels. Vous pouvez importer le ca.crt de votre autorité de certification déposer et vérifier les certificats de votre réseau qui ont été signés par votre autorité de certification.

Si vous souhaitez vous entraîner et en savoir plus sur la façon de signer des demandes de certificat et sur la façon de révoquer des certificats, ces sections facultatives expliqueront le fonctionnement des deux processus.

(Facultatif) — Création et signature d'une demande de certificat de pratique

Maintenant que vous disposez d'une autorité de certification prête à l'emploi, vous pouvez vous entraîner à générer une clé privée et une demande de certificat pour vous familiariser avec le processus de signature et de distribution.

Une demande de signature de certificat (CSR) se compose de trois parties :une clé publique, des informations d'identification sur le système demandeur, et une signature de la demande elle-même, qui est créée à l'aide de la clé privée du demandeur. La clé privée sera gardée secrète et sera utilisée pour chiffrer les informations que toute personne disposant du certificat public signé pourra ensuite déchiffrer.

Les étapes suivantes seront exécutées sur votre deuxième système Ubuntu ou Debian, ou sur une distribution dérivée de l'un ou l'autre. Il peut s'agir d'un autre serveur distant ou d'une machine Linux locale comme un ordinateur portable ou un ordinateur de bureau. Depuis easy-rsa n'est pas disponible par défaut sur tous les systèmes, nous utiliserons le openssl outil pour créer une clé privée et un certificat de pratique.

openssl est généralement installé par défaut sur la plupart des distributions Linux, mais juste pour être certain, exécutez ce qui suit sur votre système :

  1. sudo apt update
  2. sudo apt install openssl

Lorsque vous êtes invité à installer openssl entrez y pour poursuivre les étapes d'installation. Vous êtes maintenant prêt à créer un CSR de pratique avec openssl .

La première étape que vous devez effectuer pour créer un CSR est de générer une clé privée. Pour créer une clé privée en utilisant openssl , créez un practice-csr répertoire, puis générer une clé à l'intérieur de celui-ci. Nous ferons cette demande pour un serveur fictif appelé sammy-server , au lieu de créer un certificat utilisé pour identifier un utilisateur ou une autre autorité de certification.

  1. mkdir ~/practice-csr
  2. cd ~/practice-csr
  3. openssl genrsa -out sammy-server.key

Maintenant que vous avez une clé privée, vous pouvez créer un CSR correspondant, en utilisant à nouveau le openssl utilitaire. Vous serez invité à remplir un certain nombre de champs tels que Pays, État et Ville. Vous pouvez entrer un . si vous souhaitez laisser un champ vide, mais sachez que s'il s'agissait d'un vrai CSR, il est préférable d'utiliser les valeurs correctes pour votre emplacement et votre organisation :

  1. openssl req -new -key sammy-server.key -out sammy-server.req
Output. . .
-----
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:New York
Locality Name (eg, city) [Default City]:New York City
Organization Name (eg, company) [Default Company Ltd]:DigitalOcean
Organizational Unit Name (eg, section) []:Community
Common Name (eg, your name or your server's hostname) []:sammy-server
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Si vous souhaitez ajouter automatiquement ces valeurs dans le cadre de openssl invocation au lieu de via l'invite interactive, vous pouvez passer le -subj argument à OpenSSL. Assurez-vous de modifier les valeurs en surbrillance pour qu'elles correspondent à votre lieu de pratique, à votre organisation et au nom du serveur :

  1. openssl req -new -key sammy-server.key -out server.req -subj \
  2. /C=US/ST=New\ York/L=New\ York\ City/O=DigitalOcean/OU=Community/CN=sammy-server

Pour vérifier le contenu d'un CSR, vous pouvez lire dans un fichier de requête avec openssl et examinez les champs à l'intérieur :

  1. openssl req -in sammy-server.req -noout -subject
Outputsubject=C = US, ST = New York, L = New York City, O = DigitalOcean, OU = Community, CN = sammy-server

Une fois que vous êtes satisfait du sujet de votre demande de certificat de pratique, copiez le sammy-server.req fichier sur votre serveur CA en utilisant scp :

  1. scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req

Dans cette étape, vous avez généré une demande de signature de certificat pour un serveur fictif appelé sammy-server . Dans un scénario réel, la demande peut provenir de quelque chose comme un serveur Web intermédiaire ou de développement qui a besoin d'un certificat TLS pour les tests ; ou il peut provenir d'un serveur OpenVPN qui demande un certificat afin que les utilisateurs puissent se connecter à un VPN. À l'étape suivante, nous procéderons à la signature de la demande de signature de certificat à l'aide de la clé privée du serveur CA.

(Facultatif) — Signature d'un CSR

À l'étape précédente, vous avez créé une demande de certificat d'exercice et une clé pour un serveur fictif. Vous l'avez copié dans le /tmp répertoire sur votre serveur CA, émulant le processus que vous utiliseriez si vous aviez de vrais clients ou serveurs vous envoyant des demandes CSR qui doivent être signées.

En continuant avec le scénario fictif, le serveur CA doit maintenant importer le certificat de pratique et le signer. Une fois qu'une demande de certificat est validée par l'autorité de certification et relayée vers un serveur, les clients qui font confiance à l'autorité de certification pourront également faire confiance au certificat nouvellement émis.

Étant donné que nous opérerons à l'intérieur de l'ICP de l'AC où le easy-rsa est disponible, les étapes de signature utiliseront le easy-rsa utilitaire pour faciliter les choses, par opposition à l'utilisation de openssl directement comme nous l'avons fait dans l'exemple précédent.

La première étape pour signer le CSR fictif est d'importer la demande de certificat en utilisant le easy-rsa script :

  1. cd ~/easy-rsa
  2. ./easyrsa import-req /tmp/sammy-server.req sammy-server
Output. . .
The request has been successfully imported with a short name of: sammy-server
You may now use this name to perform signing operations on this request.

Vous pouvez maintenant signer la demande en exécutant easyrsa script avec le sign-req option, suivi du type de demande et du nom commun qui est inclus dans le CSR. Le type de demande peut être l'un des client , server , ou ca . Puisque nous nous entraînons avec un certificat pour un serveur fictif, assurez-vous d'utiliser le server type de demande :

  1. ./easyrsa sign-req server sammy-server

Dans la sortie, il vous sera demandé de vérifier que la demande provient d'une source fiable. Tapez yes puis appuyez sur ENTER pour le confirmer :

OutputYou are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.

Request subject, to be signed as a server certificate for 825 days:

subject=
    countryName               = US
    stateOrProvinceName       = New York
    localityName              = New York City
    organizationName          = DigitalOcean
    organizationalUnitName    = Community
    commonName                = sammy-server


Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes
. . .

Si vous avez crypté votre clé CA, vous serez invité à saisir votre mot de passe à ce stade.

Vous recevrez une sortie comme celle-ci :

OutputCheck that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'US'
stateOrProvinceName   :ASN.1 12:'New York'
localityName          :ASN.1 12:'New York City'
organizationName      :ASN.1 12:'DigitalOcean'
organizationalUnitName:ASN.1 12:'Community'
commonName            :ASN.1 12:'sammy-server'
Certificate is to be certified until Jul 21 13:59:08 2024 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt

Une fois ces étapes terminées, vous avez signé le sammy-server.req CSR utilisant la clé privée du serveur CA dans /home/sammy/easy-rsa/pki/private/ca.key . Le résultat sammy-server.crt Le fichier contient la clé de chiffrement publique du serveur d'exercice, ainsi qu'une nouvelle signature du serveur CA. Le but de la signature est de dire à toute personne qui fait confiance à l'autorité de certification qu'elle peut également faire confiance au sammy-server certificat.

Si cette demande concernait un serveur réel comme un serveur Web ou un serveur VPN, la dernière étape sur le serveur CA serait de distribuer le nouveau sammy-server.crt et ca.crt fichiers du serveur CA vers le serveur distant qui a effectué la demande CSR :

  1. scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
  2. scp pki/ca.crt sammy@your_server_ip:/tmp

À ce stade, vous pourrez utiliser le certificat émis avec quelque chose comme un serveur Web, un VPN, un outil de gestion de configuration, un système de base de données ou à des fins d'authentification client.

(Facultatif) — Révoquer un certificat

Parfois, vous devrez peut-être révoquer un certificat pour empêcher un utilisateur ou un serveur de l'utiliser. Peut-être que l'ordinateur portable de quelqu'un a été volé, qu'un serveur Web a été compromis ou qu'un employé ou un sous-traitant a quitté votre organisation.

Pour révoquer un certificat, le processus général suit ces étapes :

  1. Révoquez le certificat avec le ./easyrsa revoke client_name commande.
  2. Générer une nouvelle CRL avec le ./easyrsa gen-crl commande.
  3. Transférer le crl.pem mis à jour fichier sur le ou les serveurs qui dépendent de votre autorité de certification, et sur ces systèmes, copiez-le dans le ou les répertoires requis pour les programmes qui s'y réfèrent.
  4. Redémarrez tous les services qui utilisent votre autorité de certification et le fichier CRL.

Vous pouvez utiliser ce processus pour révoquer à tout moment tout certificat que vous avez précédemment émis. Nous passerons en revue chaque étape en détail dans les sections suivantes, en commençant par le revoke commande.

Révocation d'un certificat

Pour révoquer un certificat, accédez au easy-rsa répertoire sur votre serveur CA :

  1. cd ~/easy-rsa

Ensuite, exécutez le easyrsa script avec le revoke option, suivi du nom du client que vous souhaitez révoquer. En suivant l'exemple pratique ci-dessus, le nom commun du certificat est sammy-server :

  1. ./easyrsa revoke sammy-server

Cela vous demandera de confirmer la révocation en saisissant yes :

OutputPlease confirm you wish to revoke the certificate with the following subject:

subject=
    commonName                = sammy-server


Type the word 'yes' to continue, or any other input to abort.
  Continue with revocation: yes
. . .
Revoking Certificate 8348B3F146A765581946040D5C4D590A
. . .

Notez la valeur en surbrillance sur le Revoking Certificate doubler. Cette valeur est le numéro de série unique du certificat qui est révoqué. Si vous souhaitez examiner la liste de révocation à la dernière étape de cette section pour vérifier que le certificat s'y trouve, vous aurez besoin de cette valeur.

Après confirmation de l'action, l'autorité de certification révoquera le certificat. Cependant, les systèmes distants qui s'appuient sur l'autorité de certification n'ont aucun moyen de vérifier si des certificats ont été révoqués. Les utilisateurs et les serveurs pourront toujours utiliser le certificat jusqu'à ce que la liste de révocation de certificats (CRL) de l'autorité de certification soit distribuée à tous les systèmes qui dépendent de l'autorité de certification.

Dans l'étape suivante, vous allez générer une CRL ou mettre à jour un crl.pem existant fichier.

Génération d'une liste de révocation de certificats

Maintenant que vous avez révoqué un certificat, il est important de mettre à jour la liste des certificats révoqués sur votre serveur CA. Une fois que vous avez une liste de révocation mise à jour, vous serez en mesure de dire quels utilisateurs et systèmes ont des certificats valides dans votre autorité de certification.

Pour générer une CRL, exécutez le easy-rsa commande avec le gen-crl option tout en restant dans le ~/easy-rsa répertoire :

  1. ./easyrsa gen-crl

Si vous avez utilisé une phrase secrète lors de la création de votre ca.key fichier, vous serez invité à le saisir. Le gen-crl la commande générera un fichier appelé crl.pem , contenant la liste mise à jour des certificats révoqués pour cette autorité de certification.

Ensuite, vous devrez transférer le crl.pem mis à jour fichier à tous les serveurs et clients qui dépendent de cette autorité de certification chaque fois que vous exécutez le gen-crl commande. Sinon, les clients et les systèmes pourront toujours accéder aux services et aux systèmes qui utilisent votre autorité de certification, car ces services doivent connaître l'état de révocation du certificat.

Transférer une liste de révocation de certificats

Maintenant que vous avez généré une CRL sur votre serveur CA, vous devez la transférer vers des systèmes distants qui dépendent de votre CA. Pour transférer ce fichier sur vos serveurs, vous pouvez utiliser le scp commande.

Remarque : Ce tutoriel explique comment générer et distribuer une CRL manuellement. Bien qu'il existe des méthodes plus robustes et automatisées pour distribuer et vérifier les listes de révocation comme OCSP-Stapling, la configuration de ces méthodes dépasse le cadre de cet article.

Assurez-vous que vous êtes connecté à votre serveur CA en tant qu'utilisateur non root et exécutez ce qui suit, en remplaçant l'adresse IP ou le nom DNS de votre propre serveur à la place de your_server_ip :

  1. scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp

Maintenant que le fichier est sur le système distant, la dernière étape consiste à mettre à jour tous les services avec la nouvelle copie de la liste de révocation.

Mise à jour des services prenant en charge une CRL

Répertorier les étapes que vous devez suivre pour mettre à jour les services qui utilisent le crl.pem fichier dépasse le cadre de ce didacticiel. En général, vous devrez copier le crl.pem fichier à l'emplacement attendu par le service, puis redémarrez-le à l'aide de systemctl .

Une fois que vous avez mis à jour vos services avec le nouveau crl.pem fichier, vos services pourront rejeter les connexions des clients ou des serveurs qui utilisent un certificat révoqué.

Examen et vérification du contenu d'une CRL

Si vous souhaitez examiner un fichier CRL, par exemple pour confirmer une liste de certificats révoqués, utilisez le openssl suivant commande depuis votre easy-rsa répertoire sur votre serveur CA :

  1. cd ~/easy-rsa
  2. openssl crl -in pki/crl.pem -noout -text

Vous pouvez également exécuter cette commande sur n'importe quel serveur ou système disposant du openssl outil installé avec une copie du crl.pem dossier. Par exemple, si vous avez transféré le crl.pem fichier sur votre deuxième système et que vous souhaitez vérifier que le sammy-server certificat est révoqué, vous pouvez utiliser un openssl commande comme la suivante, en remplaçant le numéro de série que vous avez noté précédemment lorsque vous avez révoqué le certificat à la place de celui mis en évidence ici :

  1. openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A
Output    Serial Number: 8348B3F146A765581946040D5C4D590A
        Revocation Date: Apr 18 14:00:37 2022 GMT

Remarquez comment le grep La commande est utilisée pour vérifier le numéro de série unique que vous avez noté à l'étape de révocation. Vous pouvez désormais vérifier le contenu de votre liste de révocation de certificats sur n'importe quel système qui en dépend pour restreindre l'accès aux utilisateurs et aux services.

Conclusion

Dans ce didacticiel, vous avez créé une autorité de certification privée à l'aide du package Easy-RSA sur un serveur Ubuntu 22.04 autonome. Vous avez exploré le fonctionnement du modèle de confiance entre les parties qui s'appuient sur l'autorité de certification. Vous avez également créé et signé une demande de signature de certificat (CSR) pour un serveur d'entraînement, puis appris à révoquer un certificat. Finally, you learned how to generate and distribute a Certificate Revocation List (CRL) for any system that relies on your CA to ensure that users or servers that should not access services are prevented from doing so.

Now you can issue certificates for users and use them with services like OpenVPN. You can also use your CA to configure development and staging web servers with certificates to secure your non-production environments. Using a CA with TLS certificates during development can help ensure that your code and environments match your production environment as closely as possible.

If you would like to learn more about how to use OpenSSL, our OpenSSL Essentials:Working with SSL Certificates, Private Keys and CSRs tutorial has lots of additional information to help you become more familiar with OpenSSL fundamentals.


OpenVPN
  1. Comment configurer un serveur NFS et monter des partages NFS sur Ubuntu 14.10

  2. Comment installer et configurer le serveur DHCP sur Ubuntu 20.04

  3. Comment installer et configurer le serveur Redis dans Ubuntu

  4. Comment configurer WireGuard sur Ubuntu 22.04

  5. Comment configurer le serveur et le client NFS sur Ubuntu 20.04

Comment installer et configurer un serveur OpenVPN sur Ubuntu 22.04

Comment installer et configurer le serveur OpenLDAP sur Ubuntu 16.04

Comment installer et configurer VNC sur Ubuntu Server 20.04

Comment installer et configurer Parse Server sur Ubuntu 20.04

Comment installer et configurer un serveur TeamSpeak sur Ubuntu 18.04

Comment installer et configurer un serveur Minecraft sur Ubuntu 18.04