0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NPS 用 サーバー証明書の作成 (AD CS:スタンドアロン CA)

Last updated at Posted at 2023-12-23

はじめに

ネットワークポリシーサーバー (NPS) で使用するための サーバー証明書 を発行するための手順です。
証明書を発行する証明機関は、AD CS を使った方法で説明しています。

AD CS には、エンタープライズ CA と スタンドアロン CA があります。
どちらの方式でも、NPS 用 の サーバー証明書 を作成できるのですが、証明書 と NPS との関係性をしっかりと理解することを目的としていますので、スタンドアロン CA を使った手順としています。

1. 事前準備

NPS 用 のサーバー証明書 を作成する前に必要な 前提となる環境です。

1-1. NPS の導入

構築済みの NPS サーバー を用意してください。
まだ構築していない場合は、以下の手順を参考に構築しましょう。

1-2. AD CS の導入

構築済みの AD CS サーバー を用意してください。
この手順では、AD CS が、以下の構成となっていることを想定しています。

  • スタンドアロン CA
  • 証明機関 を導入済み
  • 証明機関 Web 登録 を導入済み

まだ構築していない場合は、以下の手順を参考に準備しましょう。
※スタンドアロン CA を選択してください。

2. サーバー証明書の作成

以下の URL は、公開情報に記載されている、NPS サーバー用の証明書の要件です。
この要件に合った サーバー証明書 を作成する必要があります。
この公開情報を読んだだけで、適切な サーバー証明書 を作るのは難しいと思いますので、その手順については、本章 で説明していきます。

2-1. 証明書要求 (CSR) の作成~申請

NPS サーバーへ 管理者権限で サインイン して作業を行ってください。

サーバー証明書 を作成するための 証明書要求ファイル(CSR) を作成します。
この CSR ファイルを 証明機関 (AD CS) へ提出し 承認を受けることで、サーバー証明書を受け取ることができます。

2-1-1. INFファイルの準備

INF ファイルは、CSR を作成するための INPUT ファイルとなります。
作成した INF ファイルを コマンドで変換して、CSR ファイルを作成します。
INF ファイルは、テキストエディタで必要事項を記載して作成します。

  1. NPS の 役割を導入した サーバー にサインインします。
     
  2. テキストエディタ を開き、以下の INF ファイルサンプルの内容をコピーして 貼り付けます。
[NewRequest]
Subject = "C=JP,ST=Tokyo,L=Chuo-ku,O=Sample,CN=npsradius.nps.local"
Exportable = TRUE
KeyLength = 2048
KeySpec = 1
KeyUsage = 0xA0
MachineKeySet = True
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
HashAlgorithm = sha256
ProviderType = 12
RequestType = CMC

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1

[Extensions]
2.5.29.17="{text}"
_continue_ = "dns=npsradius.nps.local"

3."Subject" は、サーバー証明書 の所有者の属性を示しています。
以下を参考に、都道府県、市区町村、組織 などを任意の文字列(英字) に編集してください。
この値は、証明書を取得したクライアント側で 証明書の発行元が 誰であるのかを 人が識別するためのもので、CN=[FQDN]以外の値は、システムの動作に影響するものではありません。動作検証するだけなら、サンプルの内容のままでも問題は無いです。

Subject = "C=JP,ST=[都道府県],L=[市区町村],O=[組織],OU=[組織単位],CN=[FQDN]"

4."npsradius.nps.local" となっている箇所は、NPSサーバー のホスト名+ドメイン名 となります。利用する環境に合わせて、修正してください。
"Subject の CN=" と "continue の dns=" の2か所あります。

上記の値は、NPS で認証を行う クライアントPC が DNSで名前解決する事ができる名称になっている必要があります。
具体的に言うと、"nslookup npsradius.nps.local" のコマンドを実行したら、NPS サーバー の IPアドレス が返ってくる状態です。

5.編集が終わったら、テキストを保存します。名称は任意ですが、本手順では "request.inf" という名前で保存したこととして説明を続けます。

2-1-2. CSRファイルの作成

  1. コマンドプロンプトを表示して、上記のファイルを保存したフォルダに移動します。
    以下のコマンドを実行します。
    ・request.inf が、事前に作成した INF ファイル名
    ・request.req が、変換後に作成される CSR ファイル名
certreq -new -f request.inf request.req

上記のコマンド実行を実行した時の画面イメージ
image.png

2.以下のように request.req というファイルが出来ている事を確認します。
image.png

これで、CSR ファイルが作成できました。
このファイルを使って、証明機関に対して 証明書の発行要求を出す事ができます。

2-1-3. 証明書要求の実施

  1. ブラウザを起動して、http:// [AD CSサーバーのIP] /certsrv へアクセスして、「証明書を要求する」を押します。
    ページが開かない場合は AD CS サーバー の Windows Firewall の設定を見直してください。
    image.png
     
  2. 「証明書の要求の詳細設定」を選択します。
    image.png
     
  3. 以下の赤枠のリンク先を選択します(この画面は 出ないこともあります)
    image.png
     
  4. 前章で作成した request.req をメモ帳で開き、「すべてを選択」して「コピー」します。
    image.png
     
  5. 先ほど開いた 証明書 Web 登録の画面の以下の場所に、貼り付けて「送信」を押します。
    image.png
     
  6. 証明書の要求が受け付けられると、以下の画面になります。
    image.png

以上で、サーバー証明書の要求 (CSR) が、証明機関 (AD CS) へ申請されました。

2-2. 証明機関で 証明書を承認し、証明書を発行する

こちらは、企業内の 証明機関の管理者の立場になったつもりで作業を行います。
証明機関(AD CS サーバー)へ 管理者権限 でサインインして作業を行ってください。
承認の作業については、以下の記事で 手順を説明していますので、この通りに実施ください。

2-3. 発行された証明書の受け取り

NPSサーバーへ 管理者権限で サインインして作業を行ってください。

  1. ブラウザを起動して、http:// [AD CSサーバーのIP] /certsrv へアクセスして、「保留中の証明書の要求の状態」を押します。
    image.png
     
  2. 以下のリンクが、要求に対して 承認された サーバー証明書 です。
    このリンクを、クリックしてください。
    ここにリンクが表示されていない場合は、以下の点を確認してください。
    ・証明書を要求した時と、同じマシン、同じブラウザ を使っているか?
    ・AD CS サーバー側で、ちゃんと 承認が実施できているか?(否認や削除をしてないか?)
    image.png
     
  3. 以下の赤枠の選択肢を選び、サーバー証明書 をダウンロードします。
    image.png
     
  4. ダウンロードしたファイルは、CertReqコマンドを実行したフォルダへコピーしておきます。
    image.png
     
  5. コマンド画面を 管理者モード で開き、証明書をダウンロードしたフォルダへ "cd" コマンドで移動します。続いて、以下のコマンドを実行して、証明書の受け取り (Accept) を実施します。
CertReq -Accept certnew.p7b

下図の通り、証明書がインストールされた旨のメッセージが表示されれば OK です。
image.png

CertReq -Accept コマンドは、事前に CertReq -new コマンドで証明書を要求した処理の後続処理となっていて、"-new" と "-Accept" は対になっています。
そのため、証明書要求を実施していないマシンに サーバー証明書(p7b) を複製して、CertReq -Accept を実施しても、エラーが発生して取り込めません。
さらに、1回の証明書要求(-new) に対して、1回の -Accept しか実施できません。
2回目の -Accept は、プロセッサエラーが発生して取り込めないため、その場合は CertReq -new の実施からやり直してください。

こんなエラーが出たこともありました。
この時は、NPS サーバーに 証明機関のルート証明書が入っていない場合でした。
image.png
以下の記事を参考に、AD CS サーバーから ルート証明書をダウンロードして、NPSサーバーにインポートしてください。
★この記事の通りに作業をすすめますが、相違点があります。
本作業の場合は、証明書 の インポート先は「ローカルコンピューター」にしてください。
https://qiita.com/carol0226/items/33042c5c639c79832aeb

6.実際に取り込まれた サーバー証明書 を確認するために、証明書ストアを開きます。
certlm.msc コマンドを実行します。
image.png

[信頼されたルート証明機関] の配下には、AD CS の名前がついたルート証明書が存在していれば OK です。
image.png

[個人] の配下には、発行した サーバー証明書 が 存在していれば OK です。
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?