【Microsoft Azure】App Service証明書をAPI Managementに適用する

こんばんは。今日は、App Serviceを他のAzureサービスで使う手順を理解するためにこの記事を書きます。今回は、その中でも特にAPI Managementに適用する手順についてまとめています。

はじめに

App Service証明書をエクスポートして他Azureサービスで利用できる機能は、2017年3月に公開されたようです。

https://azure.microsoft.com/ja-jp/updates/export-your-app-service-certificate-to-any-azure-service/

App Service開発チームによるブログにもその詳細が解説されています。

https://azure.github.io/AppService/2017/02/24/Creating-a-local-PFX-copy-of-App-Service-Certificate.html

また、日本のPaaSサービスサポートチームによるブログにも、日本語の解説があります。

https://jpazpaas.github.io/blog/2020/09/23/how-to-export-appservice-certificate.html

この記事では、これらの記事を参考にしながら、自分でもやってみた手順を整理しています。

実施手順

App Serviceドメインを購入

App Serviceドメインである必要はないのですが、簡単のため、今回はApp Serviceドメインを利用します。

App Service証明書を購入

上記作成したドメインに対して、App Service証明書リソースを作成します。

購入したドメインがtestdomain.jpだとして、API用にはapi.testdomain.jpのサブドメインを利用する場合、App Service証明書はapi.testdomain.jpに対して作成しておきます。(他にもやり方があるかもしれませんが、とりあえずこの方法ではうまくいきました)

証明書を利用可能な状態にする

続いて、証明書を利用可能な状態にしていきます。

App Service証明書リソースを開くと、以下のステップが示されていますので、順に進めていきます。証明書をKeyVaultに格納した上で、ドメインの所有権の確認を進めていく流れです。

基本的にはガイドの通りすすめていけば、すべてにチェックがつきます。このステップは数分で完了します。

これで証明書が利用可能な状態になりました!

連携したKey Vaultのシークレット一覧で、このApp Service証明書が確認できるはずです。

API ManagementにApp Service証明書を適用する

続けて、API Managementで上記の証明書を適用していきます。

API Managementに証明書を適用する方法は、こちらの公式ドキュメントで解説されています。

https://docs.microsoft.com/ja-jp/azure/api-management/api-management-howto-ca-certificates

はじめに、カスタムドメインの追加メニューに進みます。

ここで、以下のワーニングが。事前に、APIMのドメインを指すCNAMEレコードをDNSに登録しておく必要があるようです。

DNSゾーンリソースを開き、レコードセットの追加を行います。

APIMで使用するカスタムドメインがapi.testdomain.jpであれば、api.testdomain.jp = apimのホストネームとなるようにCNAMEを追加します。

さて、これでドメインのマッピングができたので、最後に本題の証明書の適用を行います。

証明書の適用には、KeyVaultから適用する、pfxファイルをアップロードして適用する、の2オプションがありますので、それぞれ試してみました。

オプション1:KeyVaultから証明書を適用する [工事中]

(なぜか、証明書の選択で、作っているはずの証明書がリストに出てこないんですよねぇ・・そういうものなのかな・・?分かったら更新します。)

オプション2:証明書をエクスポートしてインポートする

このオプションでは、App Service証明書をpfxファイルとしてエクスポートして、それをAPIMにインポートすることができます。

App Service証明書で、「証明書のエクスポート」メニューから、Key Vaultに格納している証明書をダウンロードします。

ダウンロードしたpfxファイルには、パスワードがかかっていませんが、APIMに適用する際にはパスワードの設定が必須となっています。

このため、少し手間ですがこのpfxにパスワードをかけなおすステップが必要です。

以下の手順は、PaaSチームブログの手順をそのまま踏襲しています。キャプチャだけ並べておきます。

インポートが完了したら、「ユーザ証明書の管理」から、証明書ストアを開き、先ほどの証明書が「個人」>「証明書」配下に追加されていることを確認します。

続いて、パスワード付きのpfxとしてエクスポートしていきます。上記画面で対象の証明書を右クリックして、「すべてのタスク」からエクスポートオプションを選択します。

すると以下のエクスポートウィザードが開きますので、ガイドに沿って進めていきます。

秘密鍵をエクスポート、を選択し・・・

pfx形式でのエクスポートを選択し・・・

任意のパスワードを設定し・・・・

エクスポートするファイル名と場所を指定すれば、完了です。

エクスポートが完了したら、最後にAPI Managementに適用します。

カスタムドメインの追加メニューから、証明書>カスタムを選択し、先ほどエクスポートしたpfxファイルとパスワードを設定して、保存します。

これで、割り当てたドメインに対してアクセスしてみると、ちゃんとAPIMにアクセスできることが確認できます。

以上、App Service証明書をAPI Managementに利用する方法の解説でした。

操作が分からずなかなか手こずった・・・同じ作業をされている方の参考になれば幸いです。

また、本記事が少しでもお役に立ちましたら下のいいねボタンをポチっていただけますと励みになります!

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。