👏

【第2回】Azureで社内システム再現(オンプレ編)|社内CAで証明書発行&IISをHTTPS化

に公開

概要

「Azureで社内システム再現(オンプレ編)」では、
AzureのIaaSサービスを使って簡単な社内システムを再現します。

機能としては、社員番号を入力して検索ボタンを押すと、
対応する名前を表示するだけのシンプルなものです。

※詳しい全体構成については、【第0回】Azureで社内システム再現(オンプレ編)|構成図と動作の流れで紹介しています。


システム構成(今回の対象範囲)

以下は、最終的に構築を目指す全体構成図です。

構成図

この記事では、赤枠で囲っている AD-VM1WEB-VM1 の構成が対象です。

  • AD-VM1 に企業内の認証局(AD CS)を構築し、Webサーバー用のSSL証明書を発行します。
  • WEB-VM1 では、証明書の要求(CSR)を行い、発行された証明書をIISにバインドします。
  • これにより、社内WebアプリをHTTPS経由で安全に配信できるようにします。

AD CSのロールをインストール

まずは、AD-VM1 に証明機関(CA)を構築するため、Active Directory 証明書サービス(AD CS)のロールを追加します。

ADCSロール追加

サーバーマネージャーから「役割と機能の追加」を選択し、「証明機関」にチェックを入れてインストールします。


証明書テンプレートの作成と公開

証明書テンプレートを複製し、WEB-VM1が証明書を要求できるようにします。

① テンプレートを複製する

証明書テンプレート管理コンソールを開き、「Web サーバー」テンプレートを右クリックして複製します。

テンプレート複製

「Web サーバーのコピー」というテンプレートを作成し、IISで使用する証明書のベースとします。


② セキュリティ設定を変更する

WEB-VM1が証明書を要求できるように、「セキュリティ」タブでアクセス権を設定します。

テンプレートセキュリティ設定

WEB-VM1 に「読み取り」と「登録」の権限を付与します。
特に「登録」がないと、証明書の要求が拒否されるので注意が必要です。


IISサーバー側でCSR発行(証明書要求)

① certlm.msc から証明書要求を開始

WEB-VM1で certlm.msc を起動し、「すべてのタスク」→「新しい証明書の要求」を選択します。

CSR要求スタート


② 共通名とSAN(サブジェクトの別名)を設定

共通名とSAN

  • 共通名(CN)web-vm1.domain.local
  • サブジェクトの別名(DNS名)web-vm1.domain.local, web-vm1

現代のブラウザ(特にEdgeやChrome)は、SANフィールドを使ってドメインの正当性を検証するため、必ず設定が必要です。


⚠️ 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アクセス成功

発行した証明書がブラウザに信頼され、HTTPS通信が問題なく行えていることが確認できます。


③ 証明書チェーンの確認

証明書ビューアーを開くと、CA(AD-VM1)から発行された証明書のチェーンも正しく構成されていました。

証明書チェーン

domain-ad-vm1-CA をルートとした階層が確認でき、社内CAによるHTTPS化が正常に機能している状態です。


Discussion