概要
「Azureで社内システム再現(オンプレ編)」では、
AzureのIaaSサービスを使って簡単な社内システムを再現します。
機能としては、社員番号を入力して検索ボタンを押すと、
対応する名前を表示するだけのシンプルなものです。
※詳しい全体構成については、【第0回】Azureで社内システム再現(オンプレ編)|構成図と動作の流れで紹介しています。
システム構成(今回の対象範囲)
以下は、最終的に構築を目指す全体構成図です。
この記事では、赤枠で囲っている AD-VM1 と WEB-VM1 の構成が対象です。
- AD-VM1 に企業内の認証局(AD CS)を構築し、Webサーバー用のSSL証明書を発行します。
- WEB-VM1 では、証明書の要求(CSR)を行い、発行された証明書をIISにバインドします。
- これにより、社内WebアプリをHTTPS経由で安全に配信できるようにします。
AD CSのロールをインストール
まずは、AD-VM1 に証明機関(CA)を構築するため、Active Directory 証明書サービス(AD CS)のロールを追加します。
サーバーマネージャーから「役割と機能の追加」を選択し、「証明機関」にチェックを入れてインストールします。
証明書テンプレートの作成と公開
証明書テンプレートを複製し、WEB-VM1が証明書を要求できるようにします。
① テンプレートを複製する
証明書テンプレート管理コンソールを開き、「Web サーバー」テンプレートを右クリックして複製します。
「Web サーバーのコピー」というテンプレートを作成し、IISで使用する証明書のベースとします。
② セキュリティ設定を変更する
WEB-VM1が証明書を要求できるように、「セキュリティ」タブでアクセス権を設定します。
WEB-VM1 に「読み取り」と「登録」の権限を付与します。
特に「登録」がないと、証明書の要求が拒否されるので注意が必要です。
IISサーバー側でCSR発行(証明書要求)
① certlm.msc から証明書要求を開始
WEB-VM1で certlm.msc
を起動し、「すべてのタスク」→「新しい証明書の要求」を選択します。
② 共通名とSAN(サブジェクトの別名)を設定
-
共通名(CN):
web-vm1.domain.local
-
サブジェクトの別名(DNS名):
web-vm1.domain.local
,web-vm1
現代のブラウザ(特にEdgeやChrome)は、SANフィールドを使ってドメインの正当性を検証するため、必ず設定が必要です。
⚠️ SANを設定しなかった場合のエラー
SANを省略すると、以下のような証明書エラーが発生します。
「セキュリティ証明書では、サブジェクトの別名が指定されていません。」
Edgeの仕様変更により、共通名(CN)のみの証明書は無効扱いとなる場合があります。
③ 証明書の発行とインストール完了
証明書の要求が完了し、AD CSから発行された証明書がWEB-VM1にインストールされました。
IISに証明書をバインドしてHTTPSを有効化
WEB-VM1で取得した証明書を、IISにバインドしてHTTPS通信を有効にします。
① サイトのバインド設定
IISマネージャーから対象サイトを右クリック →「バインドの編集」を開き、「https」を追加します。
ポートは 443
、ホスト名は web-vm1.domain.local
を指定し、先ほど発行した証明書を選択します。
② HTTPS化されたWebアプリにアクセス
ブラウザから https://web-vm1.domain.local/employee-app/
にアクセスすると、鍵マーク付きで正しく表示されました。
発行した証明書がブラウザに信頼され、HTTPS通信が問題なく行えていることが確認できます。
③ 証明書チェーンの確認
証明書ビューアーを開くと、CA(AD-VM1)から発行された証明書のチェーンも正しく構成されていました。
domain-ad-vm1-CA
をルートとした階層が確認でき、社内CAによるHTTPS化が正常に機能している状態です。