【第15回】Azureで社内システム再現（クラウド編）｜Web App にカスタムドメインを割り当ててみた

## 概要

これまでの「オンプレ編」では、Azure の仮想マシン（IaaS）を使って、社員番号から名前を検索できるシンプルな社内システムを構築してきました。Active Directory、SQL Server、ADFS などを組み合わせ、オンプレミスの構成を仮想的に再現しています。

※全体構成の詳細は、[【第0回】Azureで社内システム再現（オンプレ編）｜構成図と動作の流れ](https://qiita.com/your-link-here) をご参照ください。

クラウド編では、これまでの構成をベースにしつつ、Azure のマネージドサービス（PaaS）を中心とした構成へ段階的に移行していきます。

※クラウド移行全体の設計方針については、[【第10.5回】Azureで社内システム再現（クラウド編）｜オンプレ構成をどうクラウドに移行するか？](https://qiita.com/saba_infra/items/4ff691131593e947d6cf) にまとめています。

---
## システム構成（今回の対象範囲）

今回のテーマは、**Azure Web App にカスタムドメインを設定し、HTTPS でアクセスできるようにすること**です。

まず、下図は「クラウド編」の全体構成を示したものです。

![cloudのカスタムドメイン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/431ac1e6-2825-40c3-b879-3cb877b020ac.png)


Azure Web App** は、前回（第13回）までに仮想ネットワークへの統合と Private Endpoint による閉域接続まで完了しています。

今回の対象範囲は赤枠で示した部分です。
Web App に対して **独自ドメイン（カスタムドメイン）を割り当てる構成**を実装していきます。

これにより、既定の `*.azurewebsites.net` ドメインではなく、**任意のドメイン名（例：`employee.azuretest0905.com`）でアクセスできるようになります。**

さらに、**Azure App Service が提供する無料のマネージド証明書を利用して、HTTPS 通信も有効化**します。

### 今回実施する作業

- 取得済みの独自ドメインを Azure Web App に割り当て  
- DNS レコード（TXT）を設定し、ドメインの所有権を確認  
- Azure App Service のマネージド証明書の確認  

---

## カスタムドメインを追加する

Azure Web App は、作成直後の状態では `〇〇.azurewebsites.net` という規定のドメインでアクセスする必要があります。  
そのままでも動作はしますが、社内向けのシステムとしては扱いにくく、利便性にも欠けます。

![スクリーンショット 2025-04-17 10.35.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/ca46e186-5df7-4a33-8b2b-ac3677b7d538.png)

今回は、事前に取得していた独自ドメインを Web App に割り当てることで、任意のドメイン名でアクセスできるように構成します。  
ドメインはお名前.com で取得しており、証明書には Azure App Service のマネージド証明書を使用します。

![スクリーンショット 2025-04-04 15.02.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/43857f35-fed0-4cb1-974c-e33bf89df0e3.png)

---

## ドメインの所有権を確認する

カスタムドメインを割り当てるには、まずドメインの所有権を確認する必要があります。  
Azure ポータル上に表示される TXT レコードの値を、お名前.com の DNS 管理画面で追加します。

## ドメインの所有権を確認する

カスタムドメインを割り当てるには、まずドメインの所有権を確認する必要があります。  
Azure ポータル上に表示される **TXT レコード**および**CNAME レコード**の情報をもとに、  
お名前.com の DNS 管理画面でそれぞれのレコードを追加します。

![スクリーンショット 2025-04-04 15.02.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/b87518fa-5aad-42bd-a4bd-2d42fe47c855.png)

![スクリーンショット 2025-04-04 15.04.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/54dd0536-bab8-49b8-bef6-acf3d2d6a652.png)

レコードの追加後、Azure 側での検証が完了するまで数分かかります。  
今回はおよそ10分程度で所有権の確認が完了しました。

![スクリーンショット 2025-04-04 15.08.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/7d3ab332-ca1c-4370-81de-ac73d77d35ef.png)

---

## 証明書の確認

カスタムドメインの登録が完了したら、Azure Web App の「証明書」タブを確認します。  
マネージド証明書が自動で発行されており、証明書情報が表示されていることが確認できます。

![スクリーンショット 2025-04-04 15.10.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/203b375e-a05b-4b28-8b50-ec8b83f6ed6e.png)

App Service マネージド証明書は、Azure が提供する無料の SSL/TLS 証明書です。  
証明書の発行や更新はすべて自動で行われるため、有効期限を手動で管理する必要がありません。  
この機能により、運用負荷を抑えつつ、安全な通信を実現することができます。

---

## 動作確認

カスタムドメインの設定と HTTPS 対応が完了した後、実際にブラウザでアクセスして動作を確認します。

![スクリーンショット 2025-04-04 15.10.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/69b1e9a3-5e1a-470b-9dad-edcdefae6935.png)

設定したカスタムドメインの URL で Web アプリが正しく表示され、HTTPS 通信も有効になっていることが確認できました。

## 補足：証明書チェーンを確認する

実際にブラウザ上で証明書情報を確認してみると、以下のような証明書チェーンになっていました。

![スクリーンショット 2025-04-04 15.10.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037248/57b3170b-2f5f-4dd6-98c5-2902b3e5c67d.png)

最上位には、DigiCert が提供するルート証明書 **「DigiCert Global Root CA」** があり、  
その下に中間証明書として **「GeoTrust Global TLS RSA4096 SHA256 2022 CA1」** が配置されています。  

GeoTrust は、現在は DigiCert 傘下のブランドであり、業界でも広く利用されている信頼性の高い認証局です。  
Azure App Service のマネージド証明書でも、このような実績ある認証局の証明書が内部的に使われていることがわかります。

一番下には、今回カスタムドメインに対して割り当てられた **サーバー証明書（www.azuretest0905.com）** が表示されています。  
これは Azure App Service が自動で発行・管理しているもので、ユーザーが手動で用意する必要はありません。

このように、Azure のマネージド証明書機能を使うことで、内部的には業界標準の信頼チェーンが構成され、安全な HTTPS 通信が実現されています。