この記事では、Azure Key Vault を Apache Tomcat に統合して TLS/SSL 証明書を配信する方法について説明します。
JVM が TLS/SSL 証明書にアクセスできることを確認する
「Azure Key Vault を使用して JVMに TLS/SSL 証明書を配信する」で説明されているすべての手順に従っていることを確認してください。
TLS/SSL 構成を server.xml に追加する
Tomcat の server.xml ファイルに次の構成を追加します。
<your-certificate>
プレースホルダーは、サーバー側 TLS/SSL に使用する Azure Key Vault 内の証明書の名前に置き換えてください。
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate
certificateKeyAlias="<your-certificate>"
certificateKeystoreFile=""
certificateKeystorePassword=""
certificateKeystoreType="DKS"
certificateKeystoreProvider="AzureKeyVault" />
</SSLHostConfig>
</Connector>
必要なスタートアップ プロパティを設定する
JAVA_OPTS
環境変数と CLASSPATH
環境変数を使用して、Tomcat を開始する前に環境を設定します。 環境変数を指定する 1 つの方法は、Tomcat bin ディレクトリに setenv.sh または setenv.bat スクリプトを作成することです。
手記
他の方法を使用して環境変数を設定することもできます。 Tomcat の catalina.sh スクリプトまたは catalina.bat スクリプトを実行し、Tomcat for Windows サービスを実行してテストしました。
export JAVA_OPTS="-Djava.security.properties==/xxx/my.java.security"
export CLASSPATH="/xxx/azure-security-keyvault-jca.jar"
次の JAVA_OPTS
の例では、サービス プリンシパルを使用したローカル テストについて説明します。
export JAVA_OPTS='-Djava.security.properties==/xxx/my.java.security -Dazure.keyvault.uri=xxx -Dazure.keyvault.client-id=xxx -Dazure.keyvault.client-secret=xxx -Dazure.keyvault.tenant-id=xxx'
この例では、ユーザー割り当てマネージド ID を使用したクラウドデプロイについて説明します。
export JAVA_OPTS='-Djava.security.properties==/xxx/my.java.security -Dazure.keyvault.uri=xxx -Dazure.keyvault.managed-identity=<your-managed-identity>'
この例では、システム割り当てマネージド ID を使用したクラウドデプロイについて説明します。
export JAVA_OPTS='-Djava.security.properties==/xxx/my.java.security -Dazure.keyvault.uri=xxx'
これらの各プロパティの意味については、「Azure Key Vault を使用して JVMに TLS/SSL 証明書を配信する」を参照してください。