サーバー上の有効期限が切れた証明書を置き換える新しい証明書を取得した後、クライアントをサーバーで認証することはできません

この記事では、サーバー上の有効期限が切れた証明書を置き換える新しい証明書を取得した後、クライアントがサーバーで認証できない問題の解決策を示します。

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 822406

現象

有効期限が切れた証明書を、Microsoft Internet Authentication Service (IAS) またはルーティングとリモート アクセスを実行しているサーバー上の新しい証明書に置き換えた後、サーバーの証明書がサーバーで認証できないことを確認するように構成された拡張認証 Protocol-Transport レイヤー セキュリティ (EAP-TLS) を持つクライアント。 クライアント コンピューターでイベント ビューアーシステム ログを表示すると、次のイベントが表示されます。

IAS またはルーティングとリモート アクセスを実行しているサーバーで詳細ログを有効にした場合 (たとえば、コマンドを実行 netsh ras set tracing * enable すると)、クライアントが認証を試みたときに生成されるRastls.log ファイルに、次のような情報が表示されます。

注:

認証に Radius サーバーとして IAS を使用している場合は、IAS サーバーでこの動作が表示されます。 ルーティングとリモート アクセスを使用していて、ルーティングとリモート アクセスが Windows 認証 (Radius 認証ではなく) 用に構成されている場合は、ルーティングとリモート アクセス サーバーでこの動作が表示されます。

[1072] 15:47:57:280: CRYPT_E_NO_REVOCATION_CHECKは無視されません

[1072] 15:47:57:280: CRYPT_E_REVOCATION_OFFLINEは無視されません

[1072] 15:47:57:280: ルート証明書は失効チェックされません

[1072] 15:47:57:280: 証明書の失効が確認されます

[1072] 15:47:57:280:

[1072] 15:47:57:280: EapTlsMakeMessage(Example\client)

[1072] 15:47:57:280: >> 受信応答 (コード: 2) パケット: ID: 11, Length: 25, Type: 0, TLS BLOB length: 0. フラグ:

[1072] 15:47:57:280: EapTlsSMakeMessage

[1072] 15:47:57:280: EapTlsReset

[1072] 15:47:57:280: 初期状態への変更

[1072] 15:47:57:280: GetCredentials

[1072] 15:47:57:280: 証明書の名前は次のとおりです server.example.com

[1072] 15:47:57:312: BuildPacket

[1072] 15:47:57:312: << Send Request (Code: 1) packet: Id: 12, Length: 6, Type: 13, TLS BLOB length: 0. フラグ: S

[1072] 15:47:57:312: SentStart への状態変更

[1072] 15:47:57:312:

[1072] 15:47:57:312: EapTlsEnd(Example\client)

[1072] 15:47:57:312:

[1072] 15:47:57:312: EapTlsEnd(Example\client)

[1072] 15:47:57:452:

[1072] 15:47:57:452: EapTlsMakeMessage(Example\client)

[1072] 15:47:57:452: >> 受信応答 (コード: 2) パケット: ID: 12, Length: 80, Type: 13, TLS BLOB length: 70. フラグ: L

[1072] 15:47:57:452: EapTlsSMakeMessage

[1072] 15:47:57:452: MakeReplyMessage

[1072] 15:47:57:452: 入力 TLS BLOB バッファーの再割り当て

[1072] 15:47:57:452: SecurityContextFunction

[1072] 15:47:57:671: SentHello への状態変更

[1072] 15:47:57:671: BuildPacket

[1072] 15:47:57:671: << Send Request (Code: 1) packet: Id: 13, Length: 1498, Type: 13, TLS BLOB length: 3874. フラグ: LM

[1072] 15:47:57:702:

[1072] 15:47:57:702: EapTlsMakeMessage(Example\client)

[1072] 15:47:57:702: >> 受信応答 (コード: 2) パケット: ID: 13, Length: 6, Type: 13, TLS BLOB length: 0. フラグ:

[1072] 15:47:57:702: EapTlsSMakeMessage

[1072] 15:47:57:702: BuildPacket

[1072] 15:47:57:702: << Send Request (Code: 1) packet: Id: 14, Length: 1498, Type: 13, TLS BLOB length: 0. フラグ: M

[1072] 15:47:57:718:

[1072] 15:47:57:718: EapTlsMakeMessage(Example\client)

[1072] 15:47:57:718: >> 受信応答 (コード: 2) パケット: Id: 14, Length: 6, Type: 13, TLS BLOB length: 0. フラグ:

[1072] 15:47:57:718: EapTlsSMakeMessage

[1072] 15:47:57:718: BuildPacket

[1072] 15:47:57:718: << Send Request (Code: 1) packet: Id: 15, Length: 900, Type: 13, TLS BLOB length: 0. フラグ:

[1072] 15:48:12:905:

[1072] 15:48:12:905: EapTlsMakeMessage(Example\client)

[1072] 15:48:12:905: >> 受信応答 (コード: 2) パケット: Id: 15, Length: 6, Type: 13, TLS BLOB length: 0. フラグ:

[1072] 15:48:12:905: EapTlsSMakeMessage

[1072] 15:48:12:905: MakeReplyMessage

[1072] 15:48:12:905: SecurityContextFunction

[1072] 15:48:12:905: SentFinished への状態の変更。 エラー: 0x80090318

[1072] 15:48:12:905: ネゴシエーションに失敗しました

[1072] 15:48:12:905: BuildPacket

[1072] 15:48:12:905: << 送信エラー (コード: 4) パケット: ID: 15, 長さ: 4, 型: 0, TLS BLOB le

原因

この問題は、次の条件がすべて満たされている場合に発生する可能性があります。

  • IAS サーバーまたはルーティング サーバーとリモート アクセス サーバーはドメイン メンバーですが、自動証明書要求機能 (自動登録) はドメインで構成されていません。 または、IAS サーバーまたはルーティング サーバーとリモート アクセス サーバーがドメイン メンバーではありません。
  • IAS またはルーティングおよびリモート アクセス サーバーの新しい証明書を手動で要求して受信します。
  • 期限切れの証明書は、IAS またはルーティングおよびリモート アクセス サーバーから削除しません。 有効期限が切れた証明書が IAS サーバーまたはルーティング サーバーとリモート アクセス サーバーに新しい有効な証明書と共に存在する場合、クライアント認証は成功しません。 クライアント コンピューターのイベント ログに表示される "エラー 0x80090328" の結果は、"期限切れの証明書" に対応します。

回避策

この問題を回避するには、期限切れ (アーカイブ済み) 証明書を削除します。 これを行うには、次の手順に従います。

  1. IAS サーバー上の証明書ストアを管理する Microsoft 管理コンソール (MMC) スナップインを開きます。 証明書ストアを表示する MMC スナップインがまだない場合は、作成します。 そのためには、次を実行します。
    1. [ スタート] を選択し、[ 実行] を選択し、[ 開く ] ボックスに「mmc」と入力して、[ OK] を選択します

    2. [コンソール] メニュー (Windows Server 2003 の [ファイル] メニュー) で、[スナップインの追加と削除] を選択し、[追加] を選択します。

    3. [ 使用可能なスタンドアロン スナップイン ] の一覧で、[ 証明書] を選択し、[ 追加] を選択し、[ コンピューター アカウント] を選択し、[ 次へ] を選択して、[完了] を選択 します

      注:

      ユーザー アカウントとサービス アカウントの証明書スナップインをこの MMC スナップインに追加することもできます。

    4. [閉じる]、[OK] の順に選択します。

  2. [ コンソール ルート] で、[ 証明書 (ローカル コンピューター)] を選択します。
  3. [ 表示 ] メニューの [ オプション] を選択します。
  4. [アーカイブされた証明書のチェック] ボックスをクリックして選択し、[OK] を選択します
  5. [ 個人用] を展開し、[証明書] を選択 します
  6. 期限切れの (アーカイブされた) デジタル証明書を右クリックし、[ 削除] を選択し、[ はい ] を選択して、期限切れの証明書の削除を確認します。
  7. MMC スナップインを終了します。 この手順を完了するために、コンピューターまたはサービスを再起動する必要はありません。

詳細

Microsoft では、organizationでデジタル証明書を更新するように証明書の自動要求を構成することをお勧めします。 詳細については、「Windows XP での証明書の自動登録」を参照してください。