One place for hosting & domains

      mettre

      Comment mettre en place et configurer une autorité de certification (AC) sur Ubuntu 20.04


      Introduction

      Une autorité de certification (AC) est une entité chargée d’émettre des certificats numériques pour vérifier les identités sur l’internet. Bien que les AC publiques soient un choix populaire pour vérifier l’identité des sites web et autres services qui sont fournis au grand public, les AC 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 AC privée, vous pouvez émettre des certificats pour les utilisateurs, les serveurs ou les programmes et services individuels au sein de votre infrastructure.

      Quelques exemples de programmes sur Linux qui utilisent leur propre AC privée sont OpenVPN et Puppet. Vous pouvez également configurer votre serveur web pour utiliser des certificats émis par une AC privée afin de faire correspondre les environnements de développement et de simulation aux serveurs de production qui utilisent TLS pour crypter les connexions.

      Dans ce guide, nous allons apprendre comment mettre en place une autorité de certification privée sur un serveur Ubuntu 20.04 et comment générer et signer un certificat de test en utilisant votre nouvelle AC. Vous apprendrez également comment importer le certificat public du serveur de l’AC dans le magasin de certificats de votre système d’exploitation afin de pouvoir vérifier la chaîne de confiance entre l’AC et les serveurs ou utilisateurs distants. Enfin, vous apprendrez comment 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 reposent sur votre AC.

      Conditions préalables

      Pour suivre ce tutoriel, vous devrez avoir accès à un serveur Ubuntu 20.04 pour héberger votre serveur AC. Vous devrez configurer un utilisateur non root avec privilèges sudo avant de commencer ce guide. Vous pouvez suivre notre guide de configuration initiale de serveur Ubuntu 20.04 pour configurer un utilisateur avec les permissions appropriées. Le tutoriel joint permettra également de mettre en place un pare-feu, supposé rester en place tout au long de ce guide.

      Ce serveur sera appelé Serveur AC dans ce tutoriel.

      Assurez-vous que le serveur AC est un système autonome. Il ne sera utilisé que pour importer, signer et révoquer les demandes de certificats. Il ne doit pas gérer d’autres services et, dans l’idéal, il sera hors ligne ou complètement fermé lorsque vous ne travaillerez pas activement avec votre AC.

      Remarque : la dernière section de ce tutoriel est facultative si vous souhaitez en savoir plus sur la signature et la révocation des certificats. Si vous choisissez de suivre ces étapes de pratique, vous aurez besoin d’un second serveur Ubuntu 20.04 ou vous pouvez également utiliser votre propre ordinateur Linux local fonctionnant sous 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 l’ensemble de scripts easy-rsa sur votre serveur d’AC. 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 AC.

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

      • sudo apt update
      • 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 disposez de tout ce dont vous avez besoin, installé et prêt pour utiliser Easy-RSA. Dans l’étape suivante, vous allez créer une infrastructure à clés publiques, puis vous commencerez à construire votre autorité de certification.

      Étape 2 — Préparation d’un répertoire d’infrastructures à clés publiques

      Maintenant que vous avez installé easy-rsa​​​, il est temps de créer un squelette de l’infrastructure de clés publiques (ICP) sur le serveur AC. Assurez-vous que vous êtes encore connecté en tant qu’utilisateur non root et créez un répertoire easy-rsa Assurez-vous que vous n’utilisez pas sudo pour exécuter l’une des commandes suivantes, puisque votre utilisateur normal doit gérer et interagir avec l’AC sans privilèges élevés.

      Cela créera un nouveau répertoire appelé easy-rsa dans votre dossier de base. Nous utiliserons ce répertoire pour créer des liens symboliques pointant vers les fichiers de packages easy-rsa que nous avons installés à l’étape précédente. Ces fichiers sont situés dans le dossier /usr/share/easy-rsa sur le serveur AC.

      Créez les liens symboliques (symlinks) avec la commande ln :

      • ln -s /usr/share/easy-rsa/* ~/easy-rsa/

      Remarque : alors que d’autres guides peuvent vous demander de copier les fichiers du package easy-rsa dans votre répertoire ICP, ce tutoriel adopte une approche par lien symbolique. Par conséquent, toute mise à jour du paquet easy-rsa sera automatiquement répercutée dans les scripts de votre ICP.

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

      • chmod 700 /home/sammy/easy-rsa

      Enfin, initialisez l’ICP dans le répertoire easy-rsa :

      • cd ~/easy-rsa
      • ./easyrsa init-pki

      Output

      init-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 qui contient tous les fichiers nécessaires pour créer une autorité de certification. Dans la section suivante, vous allez créer la clé privée et le certificat public pour votre AC.

      Étape 3 — Création d’une autorité de certification

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

      Une fois le fichier ouvert, collez les lignes suivantes et modifiez chaque valeur mise en évidence pour refléter les informations de votre propre organisation. L’important ici est de veiller à ne laisser aucune des valeurs en blanc :

      ~/easy-rsa/vars

      set_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 "admin@example.com" 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 pour confirmer. Vous êtes maintenant prêt à construire votre AC.

      Pour créer la paire de clés root public et privé pour votre autorité de certification, exécutez à nouveau la commande ./easy-rsa, cette fois-ci avec l’option build-ca :

      Dans la sortie, vous verrez quelques lignes sur la version OpenSSL et vous serez invité à entrer une phrase de passe pour votre paire de clés. Assurez-vous de choisir une phrase de passe solide, et notez-le dans un endroit sûr. Vous devrez saisir la phrase de passe chaque fois vous devrez interagir avec votre AC, par exemple pour signer ou révoquer un certificat.

      Il vous sera également demandé de confirmer le Nom commun (CN) de votre AC. Le nom commun est le nom utilisé pour désigner cette machine dans le contexte de l’autorité de certification. Vous pouvez saisir n’importe quelle chaîne de caractères pour le nom commun de l’AC mais, par souci de simplicité, appuyez sur ENTER (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 voulez pas qu’un mot de passe vous soit demandé à chaque fois que vous interagissez avec votre AC, vous pouvez exécuter la commande build-ca avec l’option nopass, comme ceci :

      • ./easyrsa build-ca nopass

      Vous disposez maintenant de deux fichiers importants – ~/easy-rsa/pki/ca.crt et ~/easy-rsa/pki/private/ca.key – qui constituent les composants publics et privés d’une autorité de certification.

      • ca.crt est le fichier de certificats public de l’AC. 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 AC devront avoir une copie de ce fichier. Toutes les parties s’appuieront sur le certificat public pour s’assurer qu’une personne ne se fait pas passer pour un système et n’effectue pas une attaque de type Man-in-the-middle.

      • ca.key est la clé privée que l’AC utilise pour signer les clés et les certificats des serveurs et des clients. Si un intrus accède à votre AC et, à son tour, à votre fichier ca.key, vous devrez détruire votre AC. C’est pourquoi votre fichier ca.key ne doit se trouver que sur votre machine AC et votre machine AC doit idéalement être maintenue hors ligne lorsqu’elle ne signe pas de demandes de certificat, par mesure de sécurité supplémentaire.

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

      Étape 4 — Distribuer le certificat public de votre autorité de certification

      Votre AC est maintenant configurée et prête à agir comme une racine de confiance pour tous les systèmes que vous voulez configurer en vue de son utilisation. Vous pouvez ajouter le certificat de l’AC à vos serveurs OpenVPN, serveurs web, serveurs de messagerie, etc. Tout utilisateur ou serveur qui doit vérifier l’identité d’un autre utilisateur ou serveur de votre réseau devrait avoir une copie du fichier ca.crt importé dans le magasin de certificats de son système d’exploitation.

      Pour importer le certificat public de l’AC dans un deuxième système Linux comme un autre serveur ou un ordinateur local, obtenez d’abord une copie du fichier ca.crt de votre serveur AC. Vous pouvez utiliser la commande cat pour le sortir dans un terminal, puis le copier et le coller 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 un copier-coller avec nano dans cette étape car cela fonctionne sur tous les systèmes.

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

      • 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 les lignes -----BEGIN CERTIFICATE-----​​​ et –-----END CERTIFICATE----- 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 :

      Collez le contenu que vous venez de copier du serveur AC 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 disposez d’une copie du fichier ca.crt 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 :

      Ubuntu and Debian derived distributions

      • sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
      • sudo update-ca-certificates

      Pour importer le certificat du serveur AC sur un système basé sur CentOS, Fedora ou RedHat, copiez et collez le contenu du fichier sur le système tout 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 vous exécuterez la commande update-ca-trust.

      CentOS, Fedora, RedHat distributions

      • sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
      • sudo update-ca-trust

      Votre deuxième système Linux fera maintenant confiance à tout certificat qui a été signé par le serveur AC.

      Remarque : si vous utilisez votre AC avec des serveurs web et si vous utilisez le navigateur Firefox, vous devrez importer directement le certificat ca.crt public dans Firefox. 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 AC à Firefox, veuillez consulter cet article de Mozilla sur la configuration des autorités de certification (AC) dans Firefox.

      Si vous utilisez votre AC pour intégrer un environnement Windows ou des ordinateurs de bureau, veuillez consulter la documentation sur la façon d’utiliser certutil.exe pour installer un certificat d’AC.

      Si vous utilisez ce tutoriel comme condition préalable à un autre tutoriel, 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 vous expliquera chaque processus en détail.

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

      Les sections suivantes du tutoriel sont facultatives. Si vous avez effectué toutes les étapes précédentes, vous disposez d’une autorité de certification entièrement configurée et opérationnelle que vous pouvez utiliser comme condition préalable pour d’autres tutoriels. Vous pouvez importer le fichier ca.crt de votre AC et vérifier dans votre réseau les certificats qui ont été signés par votre AC.

      Si vous souhaitez vous entraîner et en savoir plus sur la manière de signer des demandes de certificat et sur la manière de révoquer des certificats, ces sections facultatives vous expliqueront comment fonctionnent les deux processus.

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

      Maintenant que vous avez une AC 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 requérant, et une signature de la requête elle-même, qui est créée en utilisant la clé privée de la partie requérante. La clé privée sera gardée secrète et sera utilisée pour chiffrer les informations que toute personne possédant le certificat public signé pourra ensuite déchiffrer.

      Les étapes suivantes seront exécutées sur votre second système Ubuntu ou Debian ou une distribution dérivée de l’un de ces systèmes. Il peut s’agir d’un autre serveur distant, ou d’une machine Linux locale comme un ordinateur portable ou un ordinateur de bureau. Comme easy-rsa n’est pas disponible par défaut sur tous les systèmes, nous utiliserons l’outil openssl 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 en être certain, exécutez ce qui suit sur votre système

      • sudo apt update
      • sudo apt install openssl

      Lorsque vous êtes invité à installer openssl, entrez y pour poursuivre les étapes d’installation.  Maintenant, vous êtes prêt à créer une pratique CSR avec openssl.

      La première étape que vous devez suivre pour créer une CSR est la génération d’une clé privée. Pour créer une clé privée en utilisant openssl, créez un répertoire “practice-csr” et générez ensuite une clé à l’intérieur de celui-ci. Nous allons faire cette requête pour un serveur fictif appelé sammy-server, par opposition à la création d’un certificat qui est utilisé pour identifier un utilisateur ou une autre AC.

      • mkdir ~/practice-csr
      • cd ~/practice-csr
      • openssl genrsa -out sammy-server.key

      Output

      Generating RSA private key, 2048 bit long modulus (2 primes) . . . . . . e is 65537 (0x010001)

      Maintenant que vous avez une clé privée, vous pouvez créer une CSR correspondante, à nouveau en utilisant l’utilitaire openssl. Vous serez invité à remplir un certain nombre de champs comme Pays, État et Ville. Vous pouvez saisir un . si vous souhaitez laisser un champ vide, mais sachez que s’il s’agit d’une véritable CSR, il est préférable d’utiliser les valeurs correctes de votre localisation et votre organisation :

      • 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 l’invocation openssl plutôt que via l’invite interactive, vous pouvez passer l’argument -subj à OpenSSL. Veillez à modifier les valeurs mises en évidence pour qu’elles correspondent à votre lieu d’exercice, à votre organisation et au nom de votre serveur :

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

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

      • openssl req -in sammy-server.req -noout -subject

      Output

      subject=C = US, ST = New York, L = New York City, O = DigitalOcean, OU = Community, CN = sammy-server

      Une fois que vous êtes satisfait de l’objet de votre demande de certificat de pratique, copiez le fichier sammy-server.req sur votre serveur AC en utilisant scp

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

      Au cours de 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 d’un serveur web de développement ou de simulation qui a besoin d’un certificat TLS pour des tests, ou d’un serveur OpenVPN qui demande un certificat pour que les utilisateurs puissent se connecter à un VPN. Au cours de l’étape suivante, nous allons passer à la signature de la demande de signature de certificat en utilisant la clé privée du serveur AC.

      (Facultatif) – Signature d’une CSR

      Dans l’étape précédente, vous avez créé une demande de certificat de pratique et une clé pour un serveur fictif. Vous l’avez copiée dans le répertoire /tmp de votre serveur AC, en émulant le processus que vous utiliseriez si vous aviez de vrais clients ou serveurs vous envoyant des demandes de CSR à signer.

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

      Comme nous opérerons au sein de l’ICP de l’AC où l’utilitaire easy-rsa est disponible, les étapes de signature utiliseront l’utilitaire easy-rsa pour faciliter les choses, au lieu d’utiliser directement openssl comme nous l’avons fait dans l’exemple précédent.

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

      • cd ~/easy-rsa
      • ./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.

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

      • ./easyrsa sign-req server sammy-server

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

      Output

      You 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 3650 days: subject= commonName = sammy-server Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes . . . Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt

      Si vous avez crypté votre clé AC, on vous demandera votre mot de passe à ce stade.

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

      Si cette requête concerne un vrai serveur comme un serveur web ou un serveur VPN, la dernière étape sur le serveur AC serait de distribuer les nouveaux fichiers sammy-server.crt et ca.crt du serveur AC au serveur distant qui a fait la requête CSR :

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

      À ce stade, vous pourrez utiliser le certificat délivré avec un serveur web, un VPN, un outil de gestion de la configuration, un système de base de données ou à des fins d’authentification des clients.

      (Facultatif) — Révocation d’un certificat

      Il peut arriver que vous deviez révoquer un certificat pour empêcher un utilisateur ou un serveur de l’utiliser. Il se peut que l’ordinateur portable de quelqu’un ait été volé, qu’un serveur web ait été compromis, ou qu’un employé ou un contractant ait quitté votre organisation.

      Pour révoquer un certificat, la procédure générale suit les étapes suivantes :

      1. Révoquez le certificat avec la commande ./easyrsa revoke client_name
      2. Générez une nouvelle LRC avec la commande ./easyrsa gen-crl
      3. Transférez le fichier crl.pem mis à jour vers le ou les serveurs qui dépendent de votre AC, et sur ces systèmes, copiez le fichier 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 AC et le fichier LRC.

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

      Révoquer un certificat

      Pour révoquer un certificat, naviguez vers le répertoire easy-rsa sur votre serveur AC :

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

      • ./easyrsa revoke sammy-server

      Il vous sera demandé de confirmer la révocation en entrant yes :

      Output

      Please 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 mise en évidence sur la ligne Revoking Certificate Cette valeur est le numéro de série unique du certificat qui est en cours de révocation. Si vous voulez examiner la liste de révocation à la dernière étape de cette section pour vérifier que le certificat y figure, vous aurez besoin de cette valeur.

      Après avoir confirmé l’action, l’AC va révoquer le certificat. Cependant, les systèmes distants qui dépendent de l’AC 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 des certificats révoqués (LCR) de l’AC soit distribuée à tous les systèmes qui dépendent de l’AC.

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

      Générer 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 AC. Une fois que vous aurez mis à jour la liste des révocations, vous serez en mesure de savoir quels utilisateurs et quels systèmes ont des certificats valides dans votre AC.

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

      Si vous avez utilisé une phrase de passe lors de la création de votre fichier ca.key, vous serez invité à l’entrer. La commande gen-crl générera un fichier appelé crl.pem, contenant la liste actualisée des certificats révoqués pour cette AC.

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

      Transférer une liste de révocation de certificats

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

      Remarque : ce tutoriel explique comment générer et distribuer manuellement une LCR. Bien qu’il existe des méthodes plus solides et automatisées pour distribuer et vérifier les listes de révocation, comme l’agrafage OCSP, la configuration de ces méthodes dépasse le cadre de cet article.

      Assurez-vous que vous êtes connecté à votre serveur AC en tant qu’utilisateur non racine et exécutez les opérations suivantes, en substituant l’IP ou le nom DNS de votre propre serveur à la place de your_server_ip :

      • 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 qui prennent en charge une LCR

      L’énumération des étapes à suivre pour mettre à jour les services qui utilisent le fichier crl.pem dépasse la portée de ce tutoriel. En général, vous devrez copier le fichier crl.pem à l’emplacement prévu par le service, puis le redémarrer à l’aide de systemctl.

      Une fois que vous aurez mis à jour vos services avec le nouveau fichier crl.pem, 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 LCR

      Si vous souhaitez examiner un fichier CRL, par exemple pour confirmer une liste de certificats révoqués, utilisez la commande openssl suivante à partir de votre répertoire easy-rsa sur votre serveur AC :

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

      Vous pouvez également exécuter cette commande sur tout serveur ou système qui dispose de l’outil openssl installé avec une copie du fichier crl.pem. Par exemple, si vous avez transféré le fichier crl.pem sur votre second système et que vous souhaitez vérifier que le certificat de sammy-server est révoqué, vous pouvez utiliser une commande openssl comme celle qui suit, en introduisant le numéro de série que vous avez noté précédemment lorsque vous avez révoqué le certificat à la place de numéro mis en évidence ici :

      • openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A

      Output

      Serial Number: 8348B3F146A765581946040D5C4D590A Revocation Date: Apr 1 20:48:02 2020 GMT

      Remarquez comment la commande grep est utilisée pour vérifier le numéro de série unique que vous avez noté dans l’étape de révocation. Vous pouvez maintenant vérifier le contenu de votre liste de révocation de certificat sur tout système qui s’appuie sur elle pour restreindre l’accès aux utilisateurs et aux services.

      Conclusion

      Dans ce tutoriel, vous avez créé une autorité de certification privée en utilisant le package Easy-RSA sur un serveur Ubuntu 20.04 autonome. Vous avez appris comment fonctionne le 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 de pratique, puis appris à révoquer un certificat. Enfin, vous avez appris comment générer et distribuer une liste de révocation de certificats (LRC) pour tout système qui dépend de votre AC afin de s’assurer que les utilisateurs ou les serveurs qui ne devraient pas accéder aux services en soient empêchés.

      Vous pouvez maintenant délivrer des certificats pour les utilisateurs et les utiliser avec des services comme OpenVPN. Vous pouvez également utiliser votre AC pour configurer des serveurs web de développement et de simulation avec des certificats, afin de sécuriser vos environnements hors production. L’utilisation d’une AC avec des certificats TLS pendant le développement peut contribuer à garantir que votre code et vos environnements correspondent autant que possible à votre environnement de production.

      Si vous souhaitez en savoir plus sur l’utilisation d’OpenSSL, consultez notre page sur les principes essentiels d’OpenSSL : Travailler avec les certificats SSL, les clés privées et les CSR contient de nombreuses informations supplémentaires pour vous aider à vous familiariser avec les principes fondamentaux d’OpenSSL.



      Source link

      Comment installer Python 3 et mettre en place un environnement de programmation sur un serveur Ubuntu 20.04


      Introduction

      Le langage de programmation Python est un choix de plus en plus populaire, tant pour les débutants que pour les développeurs expérimentés. Flexible et polyvalent, Python possède des atouts en matière de script, d’automatisation, d’analyse de données, d’apprentissage automatique et de développement back-end. Publié pour la première fois en 1991 sous un nom inspiré par le groupe comique britannique Monty Python, l’équipe de développement voulait faire de Python un langage amusant à utiliser.

      Ce tutoriel vous permettra de configurer votre serveur Ubuntu 20.04 avec un environnement de programmation Python 3. La programmation sur un serveur présente de nombreux avantages et prend en charge la collaboration entre les projets de développement. Les principes généraux de ce tutoriel s’appliquent à toute distribution de Debian Linux.

      Conditions préalables

      Pour pouvoir suivre ce tutoriel, vous devez avoir un utilisateur non root avec des privilèges sudo sur un serveur Ubuntu 20.04. Pour apprendre comment réaliser cette configuration, suivez notre guide de configuration initiale du serveur.

      Si vous n’êtes pas déjà familiarisé avec un environnement de terminal, vous trouverez peut-être l’article “Introduction au terminal Linux” utile pour mieux vous y retrouver.

      Une fois votre serveur et votre utilisateur configurés, vous êtes prêt à commencer.

      Étape 1 – Mise en place de Python 3

      Ubuntu 20.04 et d’autres versions de Debian Linux sont livrés avec Python 3 préinstallé. Pour être sûr que nos versions sont actualisées, mettons à jour et à niveau le système avec la commande apt pour qu’il fonctionne avec l’outil d’empaquetage avancé d’Ubuntu :

      • sudo apt update
      • sudo apt -y upgrade

      Le drapeau -y confirmera que nous sommes d’accord pour que tous les éléments soient installés, mais selon votre version de Linux, vous devrez peut-être confirmer des messages supplémentaires au fur et à mesure des mises à jour et des mises à niveau de votre système.

      Une fois le processus terminé, nous pouvons vérifier la version de Python 3 qui est installée dans le système en tapant :

      Vous recevrez une sortie dans la fenêtre du terminal qui vous indiquera le numéro de version. Bien que ce nombre puisse varier, la sortie sera semblable à celle-ci :

      Output

      Python 3.8.2

      Pour gérer les paquets logiciels pour Python, installons pip, un outil qui installera et gérera les paquets de programmation que nous pourrions vouloir utiliser dans nos projets de développement. Vous pouvez en apprendre davantage sur les modules ou les paquets que vous pouvez installer avec pip en lisant « Comment importer des modules en Python 3 ».

      • sudo apt install -y python3-pip

      Les paquets Python peuvent être installés en tapant :

      • pip3 install package_name

      Ici, package_name peut faire référence à n’importe quel paquet ou bibliothèque Python, comme Django pour le développement web ou NumPy pour le calcul scientifique. Donc si vous souhaitez installer NumPy, vous pouvez le faire avec la commande pip3 install numpy.

      Il existe quelques autres paquets et outils de développement à installer pour nous assurer que nous avons une configuration robuste pour notre environnement de programmation :

      • sudo apt install -y build-essential libssl-dev libffi-dev python3-dev

      Une fois Python configuré, et pip et d’autres outils sont installés, nous pouvons mettre en place un environnement virtuel pour nos projets de développement.

      Étape 2 – Mise en place d’un environnement virtuel

      Les environnements virtuels vous permettent d’avoir un espace isolé sur votre ordinateur pour les projets Python, ce qui garantit que chacun de vos projets peut avoir son propre ensemble de dépendances qui ne perturbera aucun de vos autres projets.

      La mise en place d’un environnement de programmation permet de mieux contrôler les projets Python et de voir comment différentes versions de paquets sont traitées. C’est particulièrement important lorsque vous travaillez avec des paquets tiers.

      Vous pouvez mettre en place autant d’environnement de programmation Python que vous le souhaitez. Chaque environnement est essentiellement un répertoire ou un dossier sur votre serveur qui contient quelques scripts pour qu’il agisse comme un environnement.

      Bien qu’il existe quelques moyens de réaliser un environnement de programmation en Python, nous utiliserons ici le module venv, qui fait partie de la bibliothèque standard Python 3. Installons venv en tapant :

      • sudo apt install -y python3-venv

      Une fois cela installé, nous sommes prêts à créer des environnements. Choisissons le répertoire dans lequel nous voulons placer nos environnements de programmation Python, ou bien créons un nouveau répertoire avec mkdir, comme dans :

      • mkdir environments
      • cd environments

      Une fois que vous êtes dans le répertoire où vous souhaitez que les environnements résident, vous pouvez créer un environnement en exécutant la commande suivante :

      Essentiellement, pyvenv configure un nouveau répertoire qui contient quelques éléments que nous pouvons visualiser avec la commande ls :

      Output

      bin include lib lib64 pyvenv.cfg share

      Ensemble, ces fichiers permettent de s’assurer que vos projets sont isolés du contexte plus large de votre serveur, de sorte que les fichiers système et les fichiers de projet ne se mélangent pas. C’est une bonne pratique pour le contrôle de version et pour s’assurer que chacun de vos projets a accès aux paquets particuliers dont il a besoin. Python Wheels, un format de package intégré pour Python qui peut accélérer votre production de logiciels en réduisant le nombre de fois dont vous avez besoin pour compiler, se trouvera dans le répertoire de partage Ubuntu 20.04.

      Pour utiliser cet environnement, vous devez l’activer, ce que vous pouvez réaliser en tapant la commande suivante qui appelle le script activate :

      • source my_env/bin/activate

      Votre invite de commande sera maintenant préfixée par le nom de votre environnement, dans ce cas il s’appelle my_env. Selon la version de Debian Linux que vous utilisez, votre préfixe peut apparaître quelque peu différemment, mais le nom de votre environnement entre parenthèses doit être la première chose que vous voyez sur votre ligne :

      Ce préfixe nous indique que l’environnement my_env est actuellement actif, ce qui signifie que lorsque nous créons des programmes ici, ils n’utiliseront que les paramètres et les paquets de cet environnement particulier.

      Remarque : dans l’environnement virtuel, vous pouvez utiliser la commande python au lieu de python3, et pip au lieu de pip3 si vous préférez. Si vous utilisez Python 3 sur votre machine en dehors d’un environnement, vous devrez utiliser exclusivement les commandes python3 et pip3.

      Après avoir suivi ces étapes, votre environnement virtuel est prêt à être utilisé.

      Étape 3 – Création d’un programme “Hello, World”

      Maintenant que nous avons configuré notre environnement virtuel, créons un programme traditionnel « Hello World ». Cela nous permettra de tester notre environnement et nous donnera l’occasion de nous familiariser avec Python, si ce n’est déjà fait.

      Pour ce faire, nous allons ouvrir un éditeur de texte en ligne de commande comme nano et créer un nouveau fichier :

      Une fois le fichier texte ouvert dans la fenêtre du terminal, nous allons taper notre programme :

      print("Hello, World!")
      

      Quittez nano en tapant les touches CTRL et X, et lorsque vous êtes invité à enregistrer le fichier, appuyez sur y.

      Une fois que vous avez quitté nano et que vous êtes revenu à votre shell, nous allons exécuter le programme :

      Le programme hello.py que vous venez de créer devrait permettre à votre terminal de produire la sortie suivante :

      Output

      Hello, World!

      Pour quitter l’environnement, tapez la commande deactivate et vous retournerez à votre répertoire d’origine.

      Conclusion

      Félicitations. À ce stade, vous avez un environnement de programmation Python 3 installé sur votre serveur Ubuntu Linux et vous pouvez maintenant commencer un projet de codage !

      Si vous utilisez une machine locale plutôt qu’un serveur, reportez-vous au tutoriel correspondant à votre système d’exploitation dans notre série “Comment installer et configurer un environnement de programmation local pour Python 3”.

      Votre serveur étant prêt pour le développement de logiciels, vous pouvez continuer à en apprendre davantage sur le codage en Python en lisant notre livre électronique gratuit « Comment coder en Python 3 », ou en consultant nos tutoriels Python.



      Source link

      Comment installer Python 3 et mettre en place un environnement de programmation sur un serveur Ubuntu 20.04, [Démarrage rapide]


      Introduction

      Python est un langage de programmation flexible et polyvalent, avec des points forts en matière de script, d’automatisation, d’analyse de données, d’apprentissage machine et de développement back-end.

      Ce tutoriel vous guidera dans l’installation de Python et la mise en place d’un environnement de programmation sur un serveur Ubuntu 20.04. Pour obtenir une version plus détaillée de ce tutoriel, avec des explications plus complètes de chaque étape, veuillez vous référer à Comment installer Python 3 et mettre en place un environnement de programmation sur un serveur Ubuntu 20.04.

      Étape 1 – Mise à jour et mise à niveau

      Connecté à votre serveur Ubuntu 20.04 en tant qu’utilisateur sudo non root, mettez d’abord votre système à jour et à niveau pour vous assurer que la version de Python 3 que vous avez livrée est la plus récente.

      • sudo apt update
      • sudo apt -y upgrade

      Confirmez l’installation si vous y êtes invité.

      Étape 2 – Vérifiez la version de Python

      Vérifiez quelle version de Python 3 est installée en tapant :

      Vous obtiendrez un résultat similaire à ce qui suit, en fonction de la date à laquelle vous avez mis à jour votre système.

      Output

      Python 3.8.2

      Étape 3 – Installation de pip

      Pour gérer les paquets logiciels pour Python, installez pip, un outil qui vous aidera à gérer les bibliothèques ou les modules à utiliser dans vos projets.

      • sudo apt install -y python3-pip

      Les paquets Python peuvent être installés en tapant :

      • pip3 install package_name

      Ici, package_name peut faire référence à n’importe quel paquet ou bibliothèque Python, comme Django pour le développement web ou NumPy pour le calcul scientifique. Donc si vous souhaitez installer NumPy, vous pouvez le faire avec la commande pip3 install numpy.

      Étape 4 – Installation d’outils supplémentaires

      Il existe quelques autres paquets et outils de développement à installer pour nous assurer que nous avons une configuration robuste pour notre environnement de programmation :

      • sudo apt install build-essential libssl-dev libffi-dev python3-dev

      Étape 5 – Installation de venv

      Les environnements virtuels vous permettent d’avoir un espace isolé sur votre serveur pour les projets Python. Nous utiliserons venv, qui fait partie de la bibliothèque standard Python 3, et que nous pouvons installer en tapant :

      • sudo apt install -y python3-venv

      Étape 6 – Création d’un environnement virtuel

      Vous pouvez créer un nouvel environnement avec la commande pyvenv. Ici, nous appellerons notre nouvel environnement my_env, mais vous devez donner au vôtre un nom qui ait un sens pour votre projet.

      Étape 7 – Activation de l’environnement virtuel

      Activez l’environnement en utilisant la commande ci-dessous, où my_env est le nom de votre environnement de programmation.

      • source my_env/bin/activate

      Votre invite de commande sera maintenant préfixée par le nom de votre environnement :

      Étape 8 – Test de l’environnement virtuel

      Ouvrez l’interpréteur Python :

      Notez que dans l’environnement virtuel Python 3, vous pouvez utiliser la commande python au lieu de python3, et pip au lieu de pip3.

      Vous saurez que vous êtes dans l’interpréteur lorsque vous recevrez la sortie suivante :

      Python 3.8.2 (default, Mar 13 2020, 10:14:16)
      [GCC 9.3.0] on linux
      Type "help", "copyright", "credits" or "license" for more information.
      >>>
      

      Maintenant, utilisez la fonction print() pour créer le traditionnel programme Hello, World :

      Output

      Hello, World!

      Étape 9 – Désactiver l’environnement virtuel

      Quittez l’interpréteur Python :

      Ensuite, quittez l’environnement virtuel :

      Lectures complémentaires

      À partir de là, vous pouvez en apprendre beaucoup sur Python, voici quelques liens relatifs à ce guide :



      Source link