第6章 ローカル証明書を使用したスマートカード認証の設定
ローカル証明書を使用してスマートカード認証を設定するには、次の手順を実行します。
- ホストがドメインに接続されていない
- このホストで、スマートカードで認証する必要がある
- スマートカード認証を使用して SSH アクセスを設定する必要がある
-
authselect
を使用してスマートカードを設定する必要がある
このシナリオを行うには、以下の設定を使用します。
スマートカードで認証するユーザーのユーザー証明書を取得する。証明書は、ドメインで使用される信頼できる認証局によって生成される必要があります。
証明書を取得できない場合は、テスト目的で、ローカルの認証局が署名したユーザー証明書を生成します。
- スマートカードに証明書と秘密鍵を保存する。
- SSH アクセス用のスマートカード認証を設定する。
ホストがドメインの一部である場合は、そのホストをドメインに追加し、Active Directory または Identity Management 認証局が生成した証明書を使用します。
スマートカードに IdM 証明書を作成する方法は、スマートカード認証用の Identity Management の設定 を参照してください。
前提条件
authselect がインストールされている。
authselect
ツールは、Linux ホストでユーザー認証を設定し、スマートカード認証パラメーターを設定するのに使用できます。authselect の詳細は、authselect とは を参照してください。サポートされているスマートカードまたは USB デバイス。
詳細は、Smart Card support in RHEL を参照してください。
6.1. ローカル証明書の作成 リンクのコピーリンクがクリップボードにコピーされました!
この手順に従って、次のタスクを実行します。
- OpenSSL 認証局の生成
- 証明書署名リクエストの作成
以下の手順は、テスト目的のみを想定しています。ローカルの自己署名証明局により生成される証明書は、AD、IdM、または RHCS 認証局を使用する場合と同じように安全ではありません。ホストがドメインに含まれていない場合でも、企業の認定機関が生成した証明書を使用する必要があります。
手順
証明書を生成するディレクトリーを作成します。以下に例を示します。
mkdir /tmp/ca cd /tmp/ca
# mkdir /tmp/ca # cd /tmp/ca
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書を設定します (このテキストは、
ca
ディレクトリーのコマンドラインにコピーします)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のディレクトリーを作成します。
mkdir certs crl newcerts
# mkdir certs crl newcerts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のファイルを作成します。
touch index.txt crlnumber index.txt.attr
# touch index.txt crlnumber index.txt.attr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow シリアルファイルに番号 01 を書き込みます。
echo 01 > serial
# echo 01 > serial
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、シリアル番号内に 01 を書き込みます。これは証明書のシリアル番号です。この CA によってリリースされる新しい証明書ごとに、数が 1 つ増えます。
OpenSSL root CA キーを作成します。
openssl genrsa -out rootCA.key 2048
# openssl genrsa -out rootCA.key 2048
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 自己署名 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
# openssl req -batch -config ca.cnf \ -x509 -new -nodes -key rootCA.key -sha256 -days 10000 \ -set_serial 0 -extensions v3_ca -out rootCA.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザー名のキーを作成します。
openssl genrsa -out example.user.key 2048
# openssl genrsa -out example.user.key 2048
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このキーは、セキュリティーが保護されていないローカルシステムで生成されるため、キーがカードに格納されると、キーがシステムから削除されます。
キーはスマートカードで直接作成できます。これを行う場合は、スマートカードの製造元が作成した手順に従います。
証明書署名リクエスト設定ファイルを作成します (このテキストを ca ディレクトリーでコマンドラインにコピーします)。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow example.user 証明書用の証明書署名リクエストを作成します。
openssl req -new -nodes -key example.user.key \ -reqexts req_exts -config req.cnf -out example.user.csr
# openssl req -new -nodes -key example.user.key \ -reqexts req_exts -config req.cnf -out example.user.csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい証明書を設定します。有効期限は 1 年に設定されています。
openssl ca -config ca.cnf -batch -notext \ -keyfile rootCA.key -in example.user.csr -days 365 \ -extensions usr_cert -out example.user.crt
# openssl ca -config ca.cnf -batch -notext \ -keyfile rootCA.key -in example.user.csr -days 365 \ -extensions usr_cert -out example.user.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この時点で、認証局と証明書が正常に生成され、スマートカードにインポートできる状態になります。