検索

第6章 ローカル証明書を使用したスマートカード認証の設定

download PDF

ローカル証明書を使用してスマートカード認証を設定するには、次の手順を実行します。

  • ホストがドメインに接続されていない
  • このホストで、スマートカードで認証する必要がある
  • スマートカード認証を使用して SSH アクセスを設定する必要がある
  • authselect を使用してスマートカードを設定する必要がある

このシナリオを行うには、以下の設定を使用します。

  • スマートカードで認証するユーザーのユーザー証明書を取得する。証明書は、ドメインで使用される信頼できる認証局によって生成される必要があります。

    証明書を取得できない場合は、テスト目的で、ローカルの認証局が署名したユーザー証明書を生成します。

  • スマートカードに証明書と秘密鍵を保存する。
  • SSH アクセス用のスマートカード認証を設定する。
重要

ホストがドメインの一部である場合は、そのホストをドメインに追加し、Active Directory または Identity Management 認証局が生成した証明書を使用します。

スマートカードに IdM 証明書を作成する方法は、Configuring Identity Management for smart card authentication を参照してください。

前提条件

  • authselect がインストールされている。

    authselect ツールは、Linux ホストでユーザー認証を設定し、スマートカード認証パラメーターを設定するのに使用できます。authselect の詳細は、authselect とは を参照してください。

  • RHEL 8 で対応しているスマートカードまたは USB デバイス

    詳細は、Smart Card support in RHEL8 を参照してください。

6.1. ローカル証明書の作成

この手順に従って、次のタスクを実行します。

  • OpenSSL 認証局の生成
  • 証明書署名リクエストの作成
警告

以下の手順は、テスト目的のみを想定しています。ローカルの自己署名証明局により生成される証明書は、AD、IdM、または RHCS 認証局を使用する場合と同じように安全ではありません。ホストがドメインに含まれていない場合でも、企業の認定機関が生成した証明書を使用する必要があります。

手順

  1. 証明書を生成するディレクトリーを作成します。以下に例を示します。

    # mkdir /tmp/ca
    # cd /tmp/ca
  2. 証明書を設定します (このテキストは、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. 以下のディレクトリーを作成します。

    # mkdir certs crl newcerts
  4. 以下のファイルを作成します。

    # touch index.txt crlnumber index.txt.attr
  5. シリアルファイルに番号 01 を書き込みます。

    # echo 01 > serial

    このコマンドは、シリアル番号内に 01 を書き込みます。これは証明書のシリアル番号です。この CA によってリリースされる新しい証明書ごとに、数が 1 つ増えます。

  6. OpenSSL root CA キーを作成します。

    # openssl genrsa -out rootCA.key 2048
  7. 自己署名 root 認証局証明書を作成します。

    # 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. ユーザー名のキーを作成します。

    # openssl genrsa -out example.user.key 2048

    このキーは、セキュリティーが保護されていないローカルシステムで生成されるため、キーがカードに格納されると、キーがシステムから削除されます。

    キーはスマートカードで直接作成できます。これを行う場合は、スマートカードの製造元が作成した手順に従います。

  9. 証明書署名リクエスト設定ファイルを作成します (このテキストを 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. example.user 証明書用の証明書署名リクエストを作成します。

    # openssl req -new -nodes -key example.user.key \
        -reqexts req_exts -config req.cnf -out example.user.csr
  11. 新しい証明書を設定します。有効期限は 1 年に設定されています。

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

この時点で、認証局と証明書が正常に生成され、スマートカードにインポートできる状態になります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.