こんにちは。今日は、Azure App Serviceで展開しているWebアプリケーションへの接続でSSL/TLS通信(HTTPS)を有効化する手順について整理していきたいと思います。
今回の手順では、SSL化にあたり以下のものを作成していきます。
- Azure App Service上にデプロイされたWebアプリ
- Webアプリのドメイン(カスタムドメイン)
- App ServiceのSSL証明書
Contents
Web Appを作成する
はじめにWebAppを作成します。すでに作成済の方は次のステップへお進みください!
Azure Portalの「リソースの作成」から・・
「Webアプリ」を選択します。
今回のハンズオンでは、WebAppの詳細は特に何でもよいので、お好きなランタイムで作成してください。
私は、Windows + ASP.NETで「WebAppWindowsASP」という名前のアプリを作成しました。
ただし!App Service Planについては制約があります!カスタムドメイン及びSSLがサポートされているのはBasic以上のプランになりますので、ご注意ください。(Freeで作ってしまった人もスケールアップでB1以上へ変更すれば問題ありません)
カスタムドメインを取得する
次は、WebAppへのドメインの割り当てです。すでにお持ちでない場合は、「App Service ドメイン」という便利なサービスがあり、Web Appからその場でドメインを購入することができます。
- Azureで管理されるトップレベルドメイン
- 使用できるトップレベル ドメインは、com、net、co.uk、org、nl、in、biz、org.uk、co.in
- ドメインの利用料金は1年あたり1342.88円
- ドメインはAzureを経由してGoDaddy社から購入される。
- 購入したドメインはAzure DNSを経由してホストされるため、使用に際してはAzure DNSの従量課金が発生する。(料金体系はこちら)
- 最新情報はこちら
今回は、App Serviceドメインを購入してみようと思います。
WebAppの「カスタムドメイン」ブレードから、「App Serviceドメイン」>ドメインの購入と選択します。
ここで購入したいトップレベルドメインを選択し、求められる必要情報を入力していくことで購入が完了します。ここで入力する連絡先情報は、ドメインのWhoIsデータベースに登録されてインターネットから参照できるようになります。
ドメインの購入が完了したら、Web Appに紐付けていきます。「+カスタムドメインの追加」から、先ほど購入したドメイン(wwwあり/なし)をそれぞれ登録します。
以上で、App Serviceへのカスタムドメインの割り当ては完了です!
ドメインの証明書を準備する
さて、次は証明書の準備です。下のキャプチャの「TLS/SSLの設定」ブレードから、「証明書の購入」を洗濯して、証明書の購入手続きを進めます。
証明書の購入ページでは、以下の情報を入力します。
ここで、証明書のSKUの項目について少し解説しておきたいと思います。App Service証明書にはStandardとワイルカードの2種類のSKUがあります。下記を見て分かる通り、違いはワイルドカード対応しているかどうかのみのようです。
こちらに分かりやすい解説がありましたので、リンクを貼っておきますが、*.contosu.orgのように
- コモンネームの左側にアスタリスクを指定したサーバ証明書
- www.contosu.org/login.contosu.org・・・のようにアスタリスクと同一階層のサブドメインが異なる全てのサーバにインストールできる
証明書のようです。同じドメインの複数のサーバのHTTPS化を一度に行えるため効率的になります。
今回は、デモなのでStandardで購入を進めます。
https://jprs.jp/pubcert/about/wildcard/
証明書の購入が完了したら、証明書の「証明書の構成」ブレードに記載のある手順に沿って、証明書のKeyVaultへの格納、ドメインの所有者確認を行っていきます。下記手順1〜3が完了したところで、証明書の利用準備は完了です!
TLS/SSLのバインディング追加
*作業のタイミングの間隔が空いたためアプリを作り直したりした都合でスクリーンショットのアプリ名などが微妙に整合していませんが、作業には変わりはないため、気にしないでください・・!
証明書が準備できたら、最後にドメインにTLS/SSLのバインディングを追加してHTTPS化します。
「TLS/SSLの設定」ブレードから、「TLS/SSLバインディングの追加」へ進みます。
画面右側に現れるポップアップから、利用する証明書と、TLS/SSLの種類を指定して、「バインディングの追加」を押すと、HTTPS通信ができるようになります。
プロトコル設定で、HTTPSのみを許可するか、TLSの最小バージョンを指定することも可能です。(SSLは既にサポート対象外となっています)
ここで、TLS/SSLの種類について補足説明を入れておきます。
- IP SSL:IP SSLバインディングを1つ追加可能。TLS/SSL証明書を1つ利用して、専用のIPアドレスを保護する。
- SNI SSL:複数のSNI SSLバインディングを追加可能。複数のTLS/SSL証明書を利用して、同一のIPアドレス上の複数のドメインを保護可能。最新のブラウザのほとんどはSNI SSLをサポートしている。
*SNI:Server Name Identificationの略
最後に、ブラウザでドメインにアクセスしてみると、ちゃんと鍵マークが表示されていて、HTTPS通信ができるようになっていることがわかります!
以上、Azure App ServiceでHTTPS通信を行えるようにするための手順でした!
おしまい