3.6. Création d'une autorité de certification privée à l'aide de GnuTLS


Les autorités de certification (AC) privées sont utiles lorsque votre scénario exige la vérification d'entités au sein de votre réseau interne. Par exemple, utilisez une autorité de certification privée lorsque vous créez une passerelle VPN dont l'authentification est basée sur des certificats signés par une autorité de certification sous votre contrôle ou lorsque vous ne souhaitez pas payer une autorité de certification commerciale. Pour signer des certificats dans de tels cas d'utilisation, l'AC privée utilise un certificat auto-signé.

Conditions préalables

  • Vous disposez des privilèges ou autorisations root pour entrer dans les commandes administratives avec sudo. Les commandes qui requièrent de tels privilèges sont marquées par #.
  • Vous avez déjà installé GnuTLS sur votre système. Si ce n'est pas le cas, vous pouvez utiliser cette commande :

    $ dnf install gnutls-utils

Procédure

  1. Générez une clé privée pour votre autorité de certification. Par exemple, la commande suivante crée une clé ECDSA (Elliptic Curve Digital Signature Algorithm) de 256 bits :

    $ certtool --generate-privkey --sec-param High --key-type=ecdsa --outfile <ca.key>

    La durée du processus de génération des clés dépend du matériel et de l'entropie de l'hôte, de l'algorithme sélectionné et de la longueur de la clé.

  2. Créer un fichier modèle pour un certificat.

    1. Créez un fichier avec votre éditeur de texte préféré, par exemple vi :

      $ vi <ca.cfg>
    2. Modifiez le fichier pour y inclure les détails nécessaires à la certification :

      organization = "Example Inc."
      state = "Example"
      country = EX
      cn = "Example CA"
      serial = 007
      expiration_days = 365
      ca
      cert_signing_key
      crl_signing_key
  3. Créez un certificat signé à l'aide de la clé privée générée à l'étape 1 :

    Le fichier <ca.crt> généré est un certificat CA auto-signé que vous pouvez utiliser pour signer d'autres certificats pendant un an. Le fichier <ca.crt> est la clé publique (certificat). Le fichier chargé <ca.key> est la clé privée. Vous devez conserver ce fichier dans un endroit sûr.

    $ certtool --generate-self-signed --load-privkey <ca.key> --template <ca.cfg> --outfile <ca.crt>
  4. Définissez des autorisations sécurisées pour la clé privée de votre autorité de certification, par exemple :

    # chown <root>:<root> <ca.key>
    # chmod 600 <ca.key>

Prochaines étapes

  • Pour utiliser un certificat d'autorité de certification auto-signé comme ancre de confiance sur les systèmes clients, copiez le certificat d'autorité de certification sur le client et ajoutez-le à la liste de confiance de l'ensemble du système des clients en tant que root:

    # trust anchor <ca.crt>

    Voir Chapitre 4, Utilisation de certificats système partagés pour plus d'informations.

Vérification

  1. Affichez les informations de base sur votre AC auto-signée :

    $ certtool --certificate-info --infile <ca.crt>
    Certificate:
    …
        	X509v3 extensions:
            	…
            	X509v3 Basic Constraints: critical
                	CA:TRUE
            	X509v3 Key Usage: critical
                	Certificate Sign, CRL Sign
  2. Créez une demande de signature de certificat (CSR) et utilisez votre autorité de certification pour signer la demande. L'autorité de certification doit réussir à créer un certificat sur la base de la RSC, par exemple :

    1. Générez une clé privée pour votre autorité de certification :

      $ certtool --generate-privkey --outfile <example-server.key>
    2. Créez un fichier avec votre éditeur de texte préféré, par exemple vi :

      $ vi <example-server.cfg>
    3. Modifiez le fichier pour y inclure les détails nécessaires à la certification :

      signing_key
      encryption_key
      key_agreement
      
      tls_www_server
      
      country = "US"
      organization = "Example Organization"
      cn = "server.example.com"
      
      dns_name = "example.com"
      dns_name = "server.example.com"
      ip_address = "192.168.0.1"
      ip_address = "::1"
      ip_address = "127.0.0.1"
    4. Générer une demande avec la clé privée créée précédemment

      $ certtool --generate-request --load-privkey <example-server.key> --template <example-server.cfg> --outfile <example-server.crq>
    5. Générer le certificat et le signer avec la clé privée de l'autorité de certification :

      $ certtool --generate-certificate --load-request <example-server.crq> --load-privkey <example-server.key> --load-ca-certificate <ca.crt> --load-ca-privkey <ca.key> --outfile <example-server.crt>

      Ressources supplémentaires

      • certtool(1) et trust(1) pages de manuel
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.