スタンドアロンでルート証明機関の構築

スタンドアロン CA は Active Directory ドメイン サービスとは連携しない、Windows Server OS 上に構成するシンプルな証明機関となります。
スタンドアロン CA はドメインに参加している Windows Server OS 上でも、ワークグループの Windows Server OS のどちらにも構築することができます。

今回は以下の構成でスタンドアロン CA を構築する手順を説明します。

– ワークグループのサーバー (サーバー OS) 1 台
– ワークグループのクライアント (クライアント OS) 1 台

環境

ワークグループのサーバー OS の端末に CA サーバーを構築します。

 

スタンドアロン CA の構築

ワークグループのサーバー OS の端末 1 台とクライアント OS の端末 1 台を用意しておきます。
今回は、Windows Server 2016 と Windows 10 で動作を確認しています。
今回の手順では、ネットワーク設定を除外しています。
また、スタンドアロン CA はワークグループのサーバー OS にも構築できますが、ドメインに参加しているサーバー OS にも構築することはできます。

1) サーバーに管理者権限をもつユーザーでログオンします。

2) [サーバー マネージャー] を開き、[管理] より [役割と機能の追加] をクリックします。

 

3) [開始する前に] にて、[次へ] をクリックします。

 

4) [インストールの種類の選択] にて、[役割ベースまたは機能ベースのインストール] を選択して [次へ] をクリックします。

 

5) [対象サーバーの選択] にて、自身のサーバーが選択されていることを確認し、[次へ] をクリックします。

 

6) [サーバーの役割の選択] にて、[Active Directory 証明書サービス] のチェックボックスを有効にします。

 

7) [役割と機能の追加ウィザード] にて、[管理ツールを含める(存在する場合)] のチェックボックスが有効になっていることを確認し、[機能の追加] をクリックします。

 

8) [役割の選択] にて [Active Directory 証明書サービス] のチェックボックスが有効になっていることを確認して [次へ] をクリックします。

 

9) [機能の選択] にて、そのまま [次へ] をクリックします。

 

10) [Active Directory 証明書サービス] にて、そのまま [次へ] をクリックします。

 

11) [役割サービスの選択] にて、[証明機関] のチェックボックスを有効にして [次へ] をクリックします。

 

12) [インストール オプションの確認] にて、[インストール] をクリックします。

 

13) [インストールの進行状況] にて、正常に “Active Directory ドメイン サービス” のサービスにインストールが完了したら、[対象のサーバーに Active Directory 証明書サービスを構成する] をクリックします。

 

14) [資格情報] にて、[資格情報] の枠にローカル コンピューターの変更が可能な管理者権限を保持するユーザーの資格情報が入力されていることを確認し、[次へ] をクリックします。
※自動でログオンユーザーが補完されます。もし、ローカル コンピューターの変更が可能な管理者権限をしていない場合は、[変更] をクリックして対象の権限を保持している資格情報(ユーザー名とパスワード)を入力します。

 

15) [役割サービス] にて、[証明機関] のチェックボックスを有効にして [次へ] をクリックします。

 

16) [セットアップの種類] にて、[スタンドアロン CA] を選択し [次へ] をクリックします。

 

17) [CA の種類] にて、[ルート CA] を選択して [次へ] をクリックします。

 

18) [秘密キー] にて、[新しい秘密キーを作成する] を選択して [次へ] をクリックします。

※ 新規に CA サーバーを構築するには、[新しい秘密キーを作成する] を選択します。
基本的には既存の秘密キーを使用するのは、既存の CA サーバーを移行する時となります。
ここで、作成されたキーペア(秘密鍵と公開鍵)は、秘密鍵は発行する証明書の署名、CSR の署名に、また公開鍵は CA 証明書(今回はルート証明書)に使用されます。

 

19) [CA の暗号化] にて、各種設定を行い [次へ] をクリックします。各種設定の詳細は以下の通りです。

[暗号化プロバイダー] : データの暗号化やハッシュ値を算出するサービスの種類です。
特にこだわりがなければ、既定の “RSA#Microsoft Software Key Strong Provider” のままで問題ありません。
(主要アルゴリズムは全てサポートしているプロバイダーです)

[キー長]:公開鍵のキー長です。

[この CA から発行された署名に使用するハッシュ アルゴリズムを選択] にて、この CA サーバーで発行する証明書の署名に使用するハッシュ アルゴリズムを選択します。
セキュリティの観点から SHA256 以上を選択することを推奨します。MD5 は SHA1 などの古いハッシュアルゴリズムは脆弱性が存在するので推奨しません。

 

20) [CA の名前] にて、[この CA の共通名] に CA の名前を設定します。
コンピューター名を利用した名前が自動補完されますが、任意の名前に変更して問題ありません。

 

21) [有効期間] にて、CA 証明書の有効期間の長さを指定して [次へ] をクリックします。
CA サーバーでは CA 証明書よりも長い有効期間をもつ証明書を発行することはできませんので、少し長めの期間に設定するケースが多いです。
ただし、有効期間が長すぎるとセキュリティ的にも問題がありますので、100 年の有効期間など必要以上に長く設定することは推奨しません。

 

22) [CA データベース] にて、証明書データベースや証明書データベースのファイルの保存場所を指定して [次へ] をクリックします。
自動補完される保存場所のパスのままで問題ありません。

 

23) [確認] にて、AD CS の構成ウィザードで設定した内容に問題がないか確認し、問題がなければ [構成] をクリックします。

 

24) [進行状況] にて、設定した CA サーバーが構成されるのを待ちます。

 

25) CA サーバーが正常に構成されたら、[結果] にて “構成に成功しました” と表示されていることを確認したら、[閉じる] をクリックしてウィザードを閉じます。

 

26) スタートボタンより、[Windows 管理ツール] の配下にある [証明機関] をクリックして管理ツールをクリックします。

 

27) [証明機関] です。グリーンのチェックマークがついていれば、正常に稼働しています。

 

証明書の発行

ドメインに参加しているクライアントでユーザー証明書を発行します。
エンタープライズ CA では、ウィザードで簡単に証明書を発行することができます。

1) クライアントにログオンします。

 

2) メモ帳を開き、CSR を作成して inf という拡張子でファイルを保存します。
Inf ファイルは発行したい証明書を定義するためのファイルです。
以下の設定は一番シンプルな inf ファイルの設定となり、証明書のサブジェクト名を指定した定義となります。

[NewRequest]
Subject=”CN=user01″

 

3) コマンド プロンプトを開き、cd コマンドで inf ファイルを保存したフォルダに移動します。

 

4) 以下の通りに、certreq -new コマンドを利用して作成済みの inf ファイルから CSR ファイル(拡張子は req を指定)を作成します。

     certreq -new <定義ファイル> <CSR ファイル>

 

5) 構築したスタンドアロンのルート CA の証明機関に管理者権限をもつユーザーでログオンします。

 

6) スタートボタンより、[Windows 管理ツール] – [証明機関] を開きます。

 

7) 管理ツールの左ペインにて、[証明機関(ローカル)] – [<CA 名>] を右クリックして [プロパティ] をクリックします。

 

8) プロパティ画面の [全般] タブにて、[証明書を表示] をクリックします。

 

9) CA 証明書が開いたら、[詳細] タブを選択して [ファイルにコピー] を選択します。

 

10) [証明書のエクスポート ウィザードの開始] にて、[次へ] をクリックします。

 

11) [エクスポート ファイルの形式] にて、“DER encoded binary X. 509 (.CER)” を選択して [次へ] を選択します。

 

12) [エクスポートするファイル] にて、[ファイル名] の項目にて [参照] を選択して CA 証明書のエクスポート ファイルの保存先とファイル名を指定して [次へ] をクリックします。

 

13) [証明書のエクスポート ウィザードの完了] にて、[完了] をクリックします。

 

14) [証明書のエクスポート ウィザード] にて、”正しくエクスポートされました。” と表示されたことを確認したら [OK] をクリックします。

 

15) 証明機関を構築したワークグループのサーバーに、クライアント端末で作成した CSR のファイルを任意のフォルダに保存します。

 

16) 証明機関の管理ツールに戻り、[証明機関(ローカル)] – [<CA 名>] を右クリックして [すべてのタスク] – [新しい要求の送信] をクリックします。

 

17) [要求ファイルを開く] にて、作成した CSR ファイルを選択して [開く] をクリックします。

 

18) 証明機関の管理ツールに戻り、[証明機関(ローカル)] – [<CA 名>] – [保留中の要求] を選択して、提出した CSR を選択して [発行] を選択します。

 

19) [発行した証明書] を選択して、発行された証明書をダブルクリックして証明書を開きます。

 

20) 開いた証明書にて [詳細] タブを選択して、[ファイルにコピー] をクリックします。

 

21) [証明書のエクスポート ウィザードの開始] にて、[次へ] をクリックします。

 

22) [エクスポート ファイルの形式] にて、“DER encoded binary X. 509 (.CER)” を選択して [次へ] を選択します。

 

23) [エクスポートするファイル] にて、[ファイル名] の項目にて [参照] を選択して発行した証明書のエクスポート ファイルの保存先とファイル名を指定して [次へ] をクリックします。

 

24) [証明書のエクスポート ウィザードの完了] にて、[完了] をクリックします。

 

25) [証明書のエクスポート ウィザード] にて、“正しくエクスポートされました。” と表示されたことを確認したら [OK] をクリックします。

 

26) 作成した CA 証明書のエクスポート ファイルと発行した証明書のエクスポート ファイルをコピーします。

 

27) クライアント端末に、CSR を作成したユーザーで再度ログオンします。

 

28) クライアント端末上の任意のフォルダに、コピーしたエクスポート ファイルと発行した証明書のエクスポート ファイルを保存します。

 

29) コマンド プロンプトを開き、cd コマンドでエクスポート ファイルを保存したフォルダに移動します。

 

30) 以下のコマンドで CA 証明書をインストールします。

     certutil -user -addstore Root <CA 証明書のエクスポート ファイル>

※ certutil コマンドの実行結果で、“-addstore コマンドは正常に完了しました。” というメッセージが表示されたことを確認したら、正常にルート証明書が完了しています。

 

31) 以下のコマンドで発行した証明書を登録します。

      certreq -accept <発行した証明書のエクスポート ファイル>

 

32) コマンドプロンプト上で certmgr.msc と入力して実行します。

 

33) 証明書ストアにある [個人] – [証明書] の配下で発行した証明書が登録されていることを確認します。
証明書のアイコンの左上に鍵マークのアイコンがついていれば、証明書の秘密キーと正常に紐づけされていることを示しています。

 

 

ドメイン メンバー上にエンタープライズ CA を構築した場合は、CA 証明書はドメイン コントローラーの構成パーティション上に保存されており、ドメインに参加している全てのドメイン メンバーのコンピューターに自動で配布されます。

 

しかしながら、ワークグループのサーバー上にスタンドアロン CA を構築した場合は、CA 証明書を自動で配布する仕組みがありません。

 

Windows OS では信頼していない証明機関から発行された証明書を登録することは推奨していないため、登録時に警告メッセージが表示されます。

そのため、発行された証明書を登録する際に事前に CA 証明書を信頼された証明機関の CA 証明書として事前に登録しておく必要があります。

クライアント端末ごとにルート証明書をインストールするのは手間がかかるので、もし証明機関で発行した証明書を使用するクライアントがドメインに参加しているのであれば、グループ ポリシーで配布することもできます。

関連記事

ワークグループのサーバー OS のコンピューター上でスタンドアロン CA を構築した場合、CA 証明書がクライアントに自動で配布されることはありません。 そのため、構築した CA サーバーで発行した証明書を利用する場合、証明書をインストー[…]