EAP-TLS用のクライアント証明書発行(iOS版)

証明書
<前置き>

iPhone、iPadでEAP-TLS認証を行おうとしてクライアント証明書を発行したが、

NPSサーバから以下のエラーで怒られてしまう・・・。

「ネットワーク ポリシー サーバーがユーザーのアクセスを拒否しました。」

原因は証明書失効リスト(CRL)にiOSからアクセスできないためでした。

<環境>
  • OS:Windows Server 2016 Standard
  • 役割と機能:NPS,AD DS,AD CS インストール済
  • クライアント:iPad(iOS 12),iPhone(iOS 12)
<解決策>

本手順で正しい資格情報をクライアント証明書に埋め込めんで発行すれば解決。

  • ドメインアカウント名:wirelessclient
  • ドメイン名:example.local
サーバ側作業

クライアント証明書の発行前にサーバ側で必要な設定変更を実施。

1.「サーバマネージャ」⇒「ツール」⇒「証明機関」から管理コンソールを起動

2.「失効した証明書」⇒「プロパティ」をクリック

3.「CRL公開パラメーター」タブを選択して以下の設定値とする

  • CRL公開期間(C):10年
  • ☐Delta CRL を公開する(P)⇐ここが重要

「適用」をクリック

4.「example.local-CA」⇒「プロパティ」をクリック

5.「拡張機能」タブをクリック

  • 拡張機能を選択してください(X):CRL 配布ポイント(CDP)をプルダウンより選択
  • ☐CRL に含め、クライアントはこれを使って Delta CRLの場所を検索する(N)⇐ここが重要
  • ☐発行された証明書の CDP 拡張機能に含める(I)⇐ここが重要
  • ☐発行された CRL の IDP 拡張機能に含める(L)⇐ここが重要

「OK」をクリックすると以下の警告が表示されるが「はい(Y)」をクリック

6.「ファイル名を指定して実行」⇒「mmc」と入力して「OK」をクリック

7.「ファイル(F)」⇒「スナップインの追加と削除(M)」をクリック

8.「証明書テンプレート」を選択し、「追加(A) >」⇒「OK」の順番でクリック

9.「証明書テンプレート」⇒「コンピュータ」⇒「テンプレートの複製(U)」をクリック

10.「サブジェクト名」タブをクリック

  • ◉要求に含まれる(S)⇐ここが重要

11.「全般」タブをクリック

  • テンプレート表示名(E):EAP-TLSクライアント証明書⇐ここは任意の名前に変えてもOK
  • テンプレート名(T): EAP-TLSクライアント証明書⇐ここは任意の名前に変えてもOK
  • 有効期間(V):10年ここは任意の年数で構わないが、レジストリを変更していない場合は最長2年になる
  • ☐Active Directory の証明書を発行する(P)⇐ここが重要

12. 「サーバマネージャ」⇒「ツール」⇒「証明機関」から管理コンソールを起動

13.「証明書テンプレート」⇒「新規作成(N)」⇒「発行する証明書テンプレート(T)」をクリック

14.「EAP-TLSクライアント証明書」を選択して「OK」をクリック

証明書テンプレートに「EAP-TLSクライアント証明書」が追加されればOK

ーバ側作業は以上

クライアント側作業(Windows OS)
  • 同一ドメインに参加しているWindows OSで証明書の発行
  • 必ずドメイン管理者権限で作業を実施
  • 必ず証明書サービスがインストールされていないWindows OSで作業を実施⇐ここが重要

1.「ファイル名を指定して実行」⇒「mmc」と入力して「OK」をクリック

2.「個人」⇒「すべてのタスク(K)」⇒「新しい証明書の要求(R)…」をクリック

3.「証明書の登録」ウィザードが表示されたら「次へ(N)」をクリック

4.なにも変更せずに「次へ(N)」をクリック

5.「EAP-TLSクライアント証明書」に☑を入れる

「この証明書を登録するには情報が不足しています。設定を構成するには、ここをクリックしてください。」をクリック

6.「サブジェクト」タブをクリックして以下の項目を設定する

  • 種類(T):完全なDN⇐ここが重要
  • 値(V):wirelessclient⇐ここが重要
  • 種類(Y):ユーザー プリンシパル名⇐ここが重要
  • 値(U):wirelessclient@example.local⇐ここが重要

7.「秘密キー」タブをクリックして以下の項目にチェックして「OK」

  • ☑秘密キーをエクスポート可能にする⇐ここが重要

8.「登録(E)」をクリック

9.「完了(F)」をクリック

10.「wirelessclient」⇒「すべてのタスク(K)」⇒「エクスポート(E)…」をクリック

11.「証明書のエクスポート」ウィザードが起動したら「次へ(N)」をクリック

12.以下の項目に◉を入れて「次へ(N)」をクリック

  • ◉はい、秘密キーをエクスポートします(Y)⇐ここが重要

13.以下の設定を行って「次へ(N)」をクリック

  • ◉Personal Information Exchange – PKCS#12(.PFX)(P)⇐ここが重要
  • ☑証明のパスにある証明書を可能であればすべて含む(U)
  • ☑証明書のプライバシーを有効にする(E)

14.パスワード(P)に☑を入れて任意のパスワードを設定して「次へ(N)」をクリック

  • 暗号化:TripleDES-SHA1⇐任意でOKだがデフォルト値が無難

15.エクスポート先とファイル名を任意で決定して「次へ(N)」をクリック

16.「完了(F)」をクリック

17.「OK」をクリック

iPhone、iPad側作業

エクスポートしたPFX形式のファイルをiPadでインポートして、

SSIDへ接続する際に使用する証明書として設定を行い無事成功すれば完了。

※iPhone、iPad作業の解説は割愛します

<最後に>

クライアント証明書の発行作業はかなり複雑かつ繊細です。

少しでも設定値がおかしいとうまくいかないことが多いです。

失効証明書リスト(CRL)の検証を無効化するため、証明書の無効化ができなくなります。

※証明書が流出しても無効化できないのがデメリットです。

コメント

タイトルとURLをコピーしました