【EPS技術記事】NetAttest EPS-ap ゼロタッチ証明書配布のご紹介(Active Directory)

水色の背景に六角形が2つあるイラスト 水色の背景に六角形が2つあるイラスト
アイキャッチ
目次

お知らせ

本記事は、2025年11月10日に以前公開していた内容から大幅に更新されています。
特に「ゼロタッチ証明書配布について」以降の内容に変更があります。
過去にご覧いただいていた方は、改めて内容をご確認いただくことを推奨いたします。

概要

NetAttest EPS-ap(ネットアテスト イーピーエス エーピー)」は、インターネット経由でも秘密鍵を外部に漏らさず、安全に証明書の配布ができる製品です。
オールインワン認証アプライアンス 「NetAttest EPS (ネットアテスト イーピーエス)」のオプション製品として、株式会社ソリトンシステムズが開発・販売しています。

NetAttest EPS-ap は、SCEP(Simple Certificate Enrollment Protocol)経由で証明書を配布することにより、端末内の証明書情報(秘密鍵)の漏洩を防ぎ、安全な証明書認証環境を構築することができます。
証明書の配布方法において、EPS-apではSoliton KeyManagerという専用アプリをインストールして使用します。

本記事では、以下の項目についてご紹介します。

  • Soliton KeyManagerのサイレントインストール方法
  • Soliton KeyManagerを使った端末へのゼロタッチ証明書配布
    • ユーザーストアへ証明書のインストール方法(ログオンスクリプト)
    • コンピューターストアへ証明書のインストール方法(スタートアップスクリプト)

Soliton KeyManagerのサイレントインストール方法

Windowsでは、プログラムをインストールする際などに管理者権限を要求されることがあります。
Soliton KeyManagerをインストールする際には管理者権限が必要になります。
管理者権限を持ったアカウントであれば問題ありませんが、ユーザー権限のみ付与しているアカウントもあるかと思います。
その場合、Soliton KeyManagerをインストールすることができません。

Active Directoryのグループポリシーにおけるスタートアップスクリプトを利用することで、管理者権限がない環境でもSoliton KeyManagerのインストールが可能です。

動作イメージ

デモ動画

事前準備

  1. Soliton KeyManagerのインストーラーを共有フォルダに保存します。
  2. Soliton KeyManagerをサイレントインストールするバッチファイルを作成します。
    例)Soliton  KeyManagerサイレントインストール実行コマンド
    "\\(ファイルサーバー)\(共有フォルダ) \SolitonKeyManagerV221.exe" -s
    -s:サイレントインストールオプション

Active Directory側の操作

  1. [グループポリシーの管理]-[グループポリシーオブジェクト]-[Default Domain Policy]-[セキュリティフィルター処理]より、Domain Users/Domain Computersを登録します。
    (デフォルトでは、Authenticated Usersしか登録されていません)

  2. 「1」で使用した"Default Domain Policy"の編集で、[グループポリシー管理エディター]を開き、[コンピュータの構成]-[ポリシー]-[Windowsの設定]-[スクリプト(スタートアップ/シャットダウン)]-[スタートアップ]より、スタートアップのプロパティを開きます。

  3. 「追加」より、"事前準備"で作成したバッチファイルを登録します。

  4. バッチファイルの保存場所は「参照」ボタンをクリックすると開かれるフォルダです。
    例)ドメイン名が win2022.example.com の場合 
    \\win2022.example.com\sysvol\win2022.example.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Scripts\Startup
    ※{31B2F340-016D-11D2-945F-00C04FB984F9}は、GPOのIDになるので適用するGPOなど環境によって異なります。
    該当のグループポリシー-[詳細]-[一意なID]より確認可能です。

  5. 登録後、「適用」ボタンをクリックします。

クライアントPC側の操作

  1. グループポリシー適用済みのクライアントPCを再起動します。
  2. ログイン後、Soliton  KeyManagerがインストールされていることを確認してください。

補足
クライアントPCには、以下のコマンドを入力することでグループポリシーを強制適用することも可能です。
コマンド:gpupdate /force

ゼロタッチ証明書配布について

ゼロタッチ証明書配布を行う際、KeyManagerへのログインにユーザーIDが必要となります。
このユーザーIDを共通の管理者アカウントとしてバッチファイルに埋め込むことで、スクリプトの共通化が可能となり、複数端末への展開や運用が効率化されます。
そのため、バッチファイルに埋め込むユーザーは共通の管理者アカウントを使用するケースが多くなります。

注意事項

1、共通の管理者アカウントを使用して複数端末から同時にコマンド実行
SCEPのMDMチャレンジはユーザーIDごとに生成され保持されます。SCEPリクエストに含まれるMDMチャレンジがこれと一致すれば証明書が自動的に発行されます。
しかし、同一ユーザーIDで複数端末から同時に申請が行われると、後から実施した申請のMDMチャレンジが上書きされて、先に行われた申請のSCEPリクエストが自動発行されずに証明書取得に失敗します。
共通の管理者アカウントをコマンドに埋め込んで配布したスクリプトなどで同時に実行された場合に、この問題が発生する可能性があります。
そのため、コマンド実行時の共通の管理者アカウントにWindowsの環境変数を付けてユニークなユーザーIDにすることで回避可能です。

2、同時処理数
ゼロタッチ証明書配布では複数の端末に自動で証明書配布が可能になります。
しかし、EPS-apまたはEPSの処理能力以上の端末から申請を行うと証明書配布に失敗します。
そのため、AD上のグループ毎で実施やバッチファイルに実行タイミングをずらすスクリプトを記載するなど同時申請数の調整を行ってください。

EPSのアドバンス設定

EPSにて、「共通の管理者アカウント」+「コンピューター名」または「ユーザー名」のユーザーIDでも「共通の管理者アカウント」として認証が成功するように構成します。

例) 「admin01%USERNAME%」、「admin01%COMPUTERNAME%」などを「admin01」として認証させる
サービス管理ページ(https://EPSのホスト名またはIPアドレス:2181)
高度なメニュー>RADIUS>詳細設定>アドバンス設定
・hints_added.in

# RADIUS Hints file
DEFAULT User-Name =~ "admin01.*"
  Just-User-Name := admin01

ユーザーストアへ証明書のインストール方法(ログオンスクリプト)

ユーザーストアへ証明書をインストールするには、ログオンスクリプトを使用します。
ログオンスクリプトでは、ユーザーのログオン時にログオンユーザーの権限でスクリプトが実行されます。

動作イメージ

デモ動画

事前準備

ユーザーログオン時にユーザーストアへ証明書をインストールするバッチファイルを作成します。
実行タイミングを0~3600秒の範囲で遅らせます。
例)ユーザーストアへ証明書のインストール実行コマンド

set /A timeout=%random%*3600/32767                   
timeout /T %timeout% > NUL                   
                   
"C:\Program Files (x86)\Soliton KeyManager\KeyManager.exe" /cl /su /h (EPS-apのホスト名またはIPアドレス) /hp 443 /u admin01%USERNAME% /p password /cn

環境変数「%USERNAME%」は申請するPCのユーザー名が自動的に反映されます。
例えば「/u admin01%USERNAME%」で申請すると、ユーザーIDは「admin01user01」のようになります(%USERNAME%が「user01」の場合)。
また、オプションの「/cn」を使用することで、証明書のCNに申請したPCのユーザー名を設定することができます。

オプション説明
 /clコマンドラインで実行
 /su格納先を指定する(/su = ユーザーストア)
 /hホスト名またはIPアドレスを指定する
 /hpポート番号を指定する
 /u申請ユーザーを指定する
 /p申請ユーザーのパスワード(平文)を指定する
(暗号化したパスワードを使用する場合は、「/ep」オプションを使用する)
 /cn証明書のCNをユーザー名に指定する

※ご紹介しているオプションは一部となります。
 全てのオプションについては製品マニュアルをご参照ください。(現在、マニュアルは準備中です)

Active Directory側の操作

  1. [グループポリシー管理エディター]を開き、[ユーザーの構成]-[ポリシー]-[Windowsの設定]-[スクリプト(ログオン/ログオフ)]-[ログオン]より、ログオンのプロパティを開きバッチファイルを登録します。
    登録後、「適用」ボタンをクリックします。

補足

[委任]にDomain Computersを登録しないと、ログオンスクリプトが正常に実行されませんでした。

クライアントPC側の操作

  1. グループポリシー適用済みのクライアントPCにサインイン(ログオン)します。

  2. サインイン(ログオン)すると、ログオンスクリプトが実行されます。
    ログオンスクリプトが実行されると、バッチファイルに記載されているコマンドに従ってCA証明書、クライアント証明書のインストールが行われます。
    セキュリティ警告画面で「はい」をクリックします。

  3. 「証明書をインストールしました。(ユーザー)」と表示されれば、
    クライアント証明書のインストールは完了です。

補足
クライアントPCには、以下のコマンドを入力することでグループポリシーを強制適用することも可能です。
コマンド:gpupdate /force

参考
[グループポリシー管理エディター]の[コンピューターの構成]-[ポリシー]-[Windowsの設定]-[セキュリティの設定]-[公開キーのポリシー]-[信頼されたルート証明機関]で、あらかじめCA証明書をインポートしグループポリシーで配布しておくことで、「3.」のCA証明書のインストールを行う操作を省略する(メッセージを表示させない)ことも可能です。

コンピューターストアへ証明書のインストール方法(スタートアップスクリプト)

コンピューターストアへ証明書をインストールするには、スタートアップスクリプトを使用します。
スタートアップスクリプトでは、コンピューター起動時にSYSTEMアカウント権限でスクリプトが実行されます。

動作イメージ

デモ動画

事前準備

クライアントPC起動時にコンピューターストアへ証明書をインストールするバッチファイルを作成します。
実行タイミングを0~3600秒の範囲で遅らせます。
例)コンピューターストアへ証明書のインストール実行コマンド

set /A timeout=%random%*3600/32767                   
timeout /T %timeout% > NUL                   
                   
"C:\Program Files (x86)\Soliton KeyManager\KeyManager.exe" /cl /sc /h (EPS-apのホスト名またはIPアドレス) /hp 443 /u admin01%COMPUTERNAME% /p password /cn

環境変数「%COMPUTERNAME%」は申請するPCのコンピューター名が自動的に反映されます。
例えば「/u admin01%COMPUTERNAME%」で申請すると、ユーザーIDは「admin01testPC02」のようになります(%COMPUTERNAME%が「testPC02」の場合)。
また、オプションの「/cn」を使用することで、証明書のCNに申請したPCのコンピューター名を設定することができます。

オプション説明
 /clコマンドラインで実行
 /sc格納先を指定する(/sc = コンピューターストア)
 /hホスト名またはIPアドレスを指定する
 /hpポート番号を指定する
 /u申請ユーザーを指定する
 /p申請ユーザーのパスワード(平文)を指定する
(暗号化したパスワードを使用する場合は、「/ep」オプションを使用する)
 /cn証明書のCNをコンピューター名に指定する

※ご紹介しているオプションは一部となります。
 全てのオプションについては製品マニュアルをご参照ください。(現在、マニュアル準備中です)

Active Directory側の操作

  1. [グループポリシー管理エディター]を開き、[コンピューターの構成]-[ポリシー]-[Windowsの設定]-[スクリプト(スタートアップ/シャットダウン)]-[スタートアップ]より、スタートアップスクリプトのプロパティを開きバッチファイルを登録します。
    登録後、「適用」ボタンをクリックします。

クライアントPC側の操作

  1. グループポリシー適用済みのクライアントPCを再起動します。
  2. 再起動後、コンピューターストアへCA証明書、クライアント証明書が自動的にインストールされます。
    ※スタートアップスクリプトを使用する場合、実行はコンピューター起動時となり、ユーザーがログオンしていないタイミングでの実行となります。そのため、入力ダイアログや「証明書をインストールしました。(コンピューター)」のようなメッセージは表示されません。

補足
クライアントPCには、以下のコマンドを入力することでグループポリシーを強制適用することも可能です。
コマンド:gpupdate /force




記事を書いた人

ソリトンシステムズ・テクニカルチーム