Microsoft AD CS (NDES)
Network Device Enrollment Service を通じた、Active Directory Certificate Services への SCEP エンロールメントです。
概要
Microsoft AD CS (NDES) は、Cockpit の PKI モジュールに発行者タイプとして登録されています。コネクタは、Network Device Enrollment Service のエンドポイントに対する SCEP クライアント(RFC 8894)として動作します。これは、ドメインに参加していない端末やネットワーク機器が Active Directory Certificate Services に対してエンロールする際の標準的な方法です。
NDES は、エンロールメントリクエストを Active Directory Certificate Services へ転送する SCEP のフロントエンドです。
| プロパティ | 値 |
|---|---|
| 発行者タイプ | adcs-ndes |
| バックエンド | NDES 経由の Active Directory Certificate Services(SCEP、RFC 8894) |
| 認証 | SCEP リクエストに埋め込まれる NDES のチャレンジパスワード |
| 鍵アルゴリズム | RSA のみ — SCEP の鍵転送メカニズムで必須です |
| 鍵の生成 | 呼び出し元ではなく、コネクタ自身が行います |
| 失効 | サポートされません — SCEP には失効操作がありません |
SCEP(RFC 8894)は証明書の失効操作を定義していないため、AD CS (NDES) コネクタの revoke は常に明確なエラーで失敗します。このコネクタで発行した証明書を失効させるには、Cockpit ではなく認証局側で直接失効させてください — AD CS コンソール、または certutil -revoke を使用します。失効が必要になり得る証明書についてこの発行者を利用する前に、失効プロセスを計画しておいてください。
コネクタが鍵ペアを生成する理由
SCEP のエンロールメントプロトコルでは、チャレンジパスワードを署名済みの証明書リクエスト内に埋め込み、サーバーのレスポンスはリクエスト元の鍵に対して暗号化されて返されます。このため、呼び出し元が提供する証明書署名リクエストは利用できません。Cockpit は対応する秘密鍵を保持しておらず、すでに署名されたリクエストにチャレンジパスワードを埋め込むこともできないためです。
このため、AD CS (NDES) コネクタは発行時に RSA 鍵ペアを自身で生成し、すでに CSR を含むリクエストは拒否します。秘密鍵は、発行された証明書とともに一度だけ返されます — これは DuoKey の内部 CA によるマネージド鍵発行と同じ仕組みです。後から取得することはできないため、発行時に取得して保管してください。
チャレンジパスワードを署名済みリクエストに埋め込む必要があり、サーバーのレスポンスも同じ鍵に対して暗号化されて返るため、秘密鍵は終始、呼び出し元ではなくコネクタが保持します。SCEP には失効操作が定義されていないため、ここにそのステップはありません。
設定
設定フィールド
| フィールド | 目的 |
|---|---|
scep_url | NDES の SCEP エンドポイント URL。 |
ca_fingerprint_sha256 | 想定する CA 証明書をピン留めするための任意の SHA-256 フィンガープリント — サーバーが返した CA 証明書が一致しない場合、エンロールメントは拒否されます。 |
key_size | 生成されるエンロールメント鍵ペアの RSA 鍵長。既定は 2048 ビットです。 |
認証情報
| フィールド | 目的 |
|---|---|
challenge_password | 静的な NDES エンロールメント チャレンジパスワード。個々の発行リクエストで、エンロールメントごとのチャレンジを指定することもできます。 |
チャレンジパスワードは保存時に暗号化され、プラットフォームから返されることはありません。
SCEP の URL は、インターネット上ではなく自社ネットワーク上のホストを指すことが一般的です。Cockpit のアウトバウンド接続ポリシーは、この発行者についてはプライベートネットワーク範囲を明示的に許可しますが、ループバック、リンクローカル、クラウドメタデータのアドレスは引き続き拒否します。
発行者の登録
SCEP エンドポイントを指定する
ご利用の AD CS 環境における NDES の SCEP エンドポイント URL を入力します。
チャレンジパスワードを指定する
NDES のエンロールメント チャレンジパスワードを入力します。必要に応じて、想定する CA 証明書を SHA-256 フィンガープリントでピン留めします。
鍵長を設定する
コネクタが生成するエンロールメント鍵の RSA 鍵長を確認します(既定は 2048 ビット)。
接続をテストする
接続テストを実行し、SCEP エンドポイントに到達できることを確認するとともに、公開されている機能と CA 証明書を確認します。
発行者を通じて発行する
発行者に対して証明書をリクエストします。CSR は指定しないでください — コネクタが RSA 鍵ペアと CSR を自身で生成し、チャレンジパスワードを埋め込みます。
サポートされる操作
| 操作 | サポート | 備考 |
|---|---|---|
| test-connection | はい | SCEP 経由で CA の機能と CA 証明書を照会します。 |
| issue | はい | RSA 鍵ペアを生成し、CSR にチャレンジパスワードを埋め込んで、SCEP の PKCSReq/CertRep のやり取りを完了します。 |
| renew | はい | ネイティブの更新フローはありません — 更新は新しい鍵ペアを生成して再エンロールします。 |
| revoke | いいえ | SCEP には失効操作がありません。認証局側で直接失効させてください。 |
NDES/CA のポリシーがエンロールメントリクエストを手動承認のために保留する場合、発行は自動的には完了しません。Cockpit は証明書を短時間ポーリングし、そのウィンドウを過ぎても保留中のままであれば、CA 側でリクエストを承認したうえで再度発行するよう促すエラーを返します。SCEP のポーリングトークンはリクエストをまたいで保持されないため、保留のまま残ったリクエストを後から自動的に完了させることはできません。可能な場合は、チャレンジパスワードによる自動発行を構成してください。