Rechercher

Chapitre 6. Configuration de l'authentification par carte à puce avec des certificats locaux

download PDF

Ce chapitre décrit un scénario dans lequel

  • L'hôte n'est pas connecté à un domaine.
  • Vous souhaitez vous authentifier avec une carte à puce sur cet hôte.
  • Vous souhaitez configurer l'accès SSH en utilisant l'authentification par carte à puce.
  • Vous voulez configurer la carte à puce avec authselect.

Utilisez la configuration suivante pour réaliser ce scénario :

  • Obtenez un certificat d'utilisateur pour l'utilisateur qui souhaite s'authentifier à l'aide d'une carte à puce. Le certificat doit être généré par une autorité de certification fiable utilisée dans le domaine.

    Si vous ne pouvez pas obtenir le certificat, vous pouvez générer un certificat utilisateur signé par une autorité de certification locale à des fins de test,

  • Stockez le certificat et la clé privée dans une carte à puce.
  • Configurer l'authentification par carte à puce pour l'accès SSH.
Important

Si un hôte peut faire partie du domaine, ajoutez-le au domaine et utilisez les certificats générés par Active Directory ou l'autorité de certification de la gestion des identités.

Pour plus d'informations sur la création de certificats IdM pour une carte à puce, voir Configuration de la gestion des identités pour l'authentification par carte à puce.

Conditions préalables

  • Authselect installé

    L'outil authselect configure l'authentification des utilisateurs sur les hôtes Linux et vous pouvez l'utiliser pour configurer les paramètres d'authentification par carte à puce. Pour plus d'informations sur authselect, voir Explication de authselect.

  • Carte à puce ou périphériques USB pris en charge par RHEL 9

    Pour plus de détails, voir la prise en charge des cartes à puce dans RHEL9.

6.1. Création de certificats locaux

Cette section décrit comment effectuer ces tâches :

  • Générer l'autorité de certification OpenSSL
  • Créer une demande de signature de certificat
Avertissement

Les étapes suivantes sont destinées à des fins de test uniquement. Les certificats générés par une autorité de certification locale auto-signée ne sont pas aussi sûrs qu'une autorité de certification AD, IdM ou RHCS. Vous devez utiliser un certificat généré par l'autorité de certification de votre entreprise, même si l'hôte ne fait pas partie du domaine.

Procédure

  1. Créez un répertoire où vous pourrez générer le certificat, par exemple :

    # mkdir /tmp/ca
    # cd /tmp/ca
  2. Mettre en place le certificat (copier ce texte sur votre ligne de commande dans le répertoire ca ) :

    cat > ca.cnf <<EOF
    [ ca ]
    default_ca = CA_default
    
    [ CA_default ]
    dir              = .
    database         = \$dir/index.txt
    new_certs_dir    = \$dir/newcerts
    
    certificate      = \$dir/rootCA.crt
    serial           = \$dir/serial
    private_key      = \$dir/rootCA.key
    RANDFILE         = \$dir/rand
    
    default_days     = 365
    default_crl_days = 30
    default_md       = sha256
    
    policy           = policy_any
    email_in_dn      = no
    
    name_opt         = ca_default
    cert_opt         = ca_default
    copy_extensions  = copy
    
    [ usr_cert ]
    authorityKeyIdentifier = keyid, issuer
    
    [ v3_ca ]
    subjectKeyIdentifier   = hash
    authorityKeyIdentifier = keyid:always,issuer:always
    basicConstraints       = CA:true
    keyUsage               = critical, digitalSignature, cRLSign, keyCertSign
    
    [ policy_any ]
    organizationName       = supplied
    organizationalUnitName = supplied
    commonName             = supplied
    emailAddress           = optional
    
    [ req ]
    distinguished_name = req_distinguished_name
    prompt             = no
    
    [ req_distinguished_name ]
    O  = Example
    OU = Example Test
    CN = Example Test CA
    EOF
  3. Créez les répertoires suivants :

    # mkdir certs crl newcerts
  4. Créez les fichiers suivants :

    # touch index.txt crlnumber index.txt.attr
  5. Inscrivez le numéro 01 dans le fichier série :

    # echo 01 > serial

    Cette commande écrit un numéro 01 dans le fichier de série. Il s'agit du numéro de série du certificat. Ce numéro augmente d'une unité à chaque nouveau certificat délivré par l'autorité de certification.

  6. Créer une clé d'autorité de certification racine OpenSSL :

    # openssl genrsa -out rootCA.key 2048
  7. Créer un certificat d'autorité de certification racine auto-signé :

    # openssl req -batch -config ca.cnf \
        -x509 -new -nodes -key rootCA.key -sha256 -days 10000 \
        -set_serial 0 -extensions v3_ca -out rootCA.crt
  8. Créez la clé de votre nom d'utilisateur :

    # openssl genrsa -out example.user.key 2048

    Cette clé est générée dans le système local, qui n'est pas sécurisé. Il faut donc retirer la clé du système lorsqu'elle est stockée dans la carte.

    Vous pouvez également créer une clé directement dans la carte à puce. Pour ce faire, suivez les instructions du fabricant de votre carte à puce.

  9. Créez le fichier de configuration de la demande de signature de certificat (copiez ce texte sur votre ligne de commande dans le répertoire ca) :

    cat > req.cnf <<EOF
    [ req ]
    distinguished_name = req_distinguished_name
    prompt = no
    
    [ req_distinguished_name ]
    O = Example
    OU = Example Test
    CN = testuser
    
    [ req_exts ]
    basicConstraints = CA:FALSE
    nsCertType = client, email
    nsComment = "testuser"
    subjectKeyIdentifier = hash
    keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment
    extendedKeyUsage = clientAuth, emailProtection, msSmartcardLogin
    subjectAltName = otherName:msUPN;UTF8:testuser@EXAMPLE.COM, email:testuser@example.com
    EOF
  10. Créez une demande de signature de certificat pour votre certificat example.user :

    # openssl req -new -nodes -key example.user.key \
        -reqexts req_exts -config req.cnf -out example.user.csr
  11. Configurez le nouveau certificat. La période d'expiration est fixée à 1 an :

    # openssl ca -config ca.cnf -batch -notext \
        -keyfile rootCA.key -in example.user.csr -days 365 \
        -extensions usr_cert -out example.user.crt

À ce stade, l'autorité de certification et les certificats sont générés avec succès et préparés pour l'importation dans une carte à puce.

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.