Azure Spring Apps のアプリケーションで TLS/SSL 証明書を使用する
Note
Basic、Standard、Enterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象:✅ Basic/Standard ✅ Enterprise
この記事では、Azure Spring Apps で公開証明書をアプリケーションに使用する方法について説明します。 アプリはクライアントとして、証明書認証を必要とする外部サービスにアクセスすることがあるほか、暗号タスクを実行しなければならない場合もあります。
Azure Spring Apps の TLS/SSL 証明書の管理機能を使用すれば、証明書とアプリケーション コードを分離して管理し、機密データを保護できます。 アプリ コードは、Azure Spring Apps インスタンスに追加した公開証明書にアクセスできます。
前提条件
- Azure Spring Apps にデプロイされたアプリケーション。 詳しくは「クイック スタート:初めての Azure Spring Apps アプリケーションをデプロイする」を確認するか、既存のアプリを使用します。
- 拡張子が .crt、.cer、.pem、または .der の証明書ファイル、またはプライベート証明書を持つ Azure Key Vault のデプロイ済みインスタンスのいずれか。
証明書のインポート
Azure Spring Apps インスタンスに証明書をインポートするには、Key Vault から行うか、ローカルの証明書ファイルを使用するかを選ぶことができます。
Key Vault から証明書をインポートする
証明書をインポートする前に、次のようにして Azure Spring Apps にキー コンテナーへのアクセス権を付与する必要があります。
Azure Key Vault には 2 つの認可システムが用意されています。Azure の管理およびデータ プレーンで動作する Azure ロールベースのアクセス制御 (Azure RBAC) と、データ プレーンでのみ動作するアクセス ポリシー モデルです。
アクセスを付与するには、次の手順を使用します:
Azure portal にサインインします。
[キー コンテナー] を選択してから、証明書のインポート元となるキー コンテナーを選択します。
ナビゲーション ウィンドウで [アクセス ポリシー] を選択し、[作成] を選択します。
[証明書のアクセス許可] を選択し、次に [取得] と [一覧表示] を選択します。
[プリンシパル] で、[Azure Spring Cloud リソース プロバイダー] を選択します。
[確認および作成] を選択し、 [作成] を選択します。
キー コンテナーへのアクセス権を付与したら、次の手順を使用して証明書をインポートできます:
サービス インスタンスに移動します。
インスタンスの左側のナビゲーション ウィンドウで、[TLS/SSL の設定] を選択します。
[公開キー証明書] で [Key Vault 証明書のインポート] を選択します。
[キー コンテナー] セクションでキー コンテナー を選択し、[証明書] セクションで証明書を選択し、その後 [選択] を選択します。
[証明書名] の値を 指定し、必要に応じて [自動同期を有効にする] を選択し、その後 [適用] を選択します。 詳細については、「既存のカスタム ドメインを Azure Spring Apps にマップする」の「自動同期証明書」セクションを参照してください。
証明書が正常にインポートされた後、公開キー証明書の一覧に表示されます。
Note
Azure Key Vault インスタンスと Azure Spring Apps インスタンスは、同じテナント内に存在する必要があります。
ローカルの証明書ファイルをインポートする
次の手順を使用して、ローカルに格納されている証明書ファイルをインポートできます。
- サービス インスタンスに移動します。
- インスタンスの左側のナビゲーション ウィンドウで、[TLS/SSL の設定] を選択します。
- [公開キー証明書] セクションで [公開証明書のアップロード] を選択します。
証明書が正常にインポートされた後、公開キー証明書の一覧に表示されます。
証明書を読み込む
証明書を Azure Spring Apps のアプリケーションに読み込むには、以下の手順から始めます。
- アプリケーション インスタンスに移動します。
- アプリの左側のナビゲーション ウィンドウで、[証明書管理] を選択します。
- [証明書の追加] を選択して、アプリでアクセス可能な証明書を選択します。
コードから証明書を読み込む
読み込まれた証明書は、/etc/azure-spring-cloud/certs/public にあります。 次の Java コードを使用して、Azure Spring Apps のアプリケーションに公開証明書を読み込みます。
CertificateFactory factory = CertificateFactory.getInstance("X509");
FileInputStream is = new FileInputStream("/etc/azure-spring-cloud/certs/public/<certificate name>");
X509Certificate cert = (X509Certificate) factory.generateCertificate(is);
// use the loaded certificate
証明書を信頼ストアに読み込む
Java アプリケーションの場合は、選択した証明書の [Load into trust store]\(信頼ストアに読み込む\) を選択することができます。 証明書は、TLS/SSL 認証でサーバーを認証するために、Java の既定の TrustStores に自動的に追加されます。
以下のアプリのログは、証明書が正常に読み込まれたことを示しています。
Load certificate from specific path. alias = <certificate alias>, thumbprint = <certificate thumbprint>, file = <certificate name>