本文介绍如何将 Azure Key Vault 集成到 Apache Tomcat 中,以提供 TLS/SSL 证书。
确保 JVM 可以访问 TLS/SSL 证书
请确保执行了使用 Azure 密钥保管库向 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>
设置所需的启动属性
在启动 Tomcat 之前,请使用 JAVA_OPTS
和 CLASSPATH
环境变量来设置环境。 指定环境变量的一种方法是在 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'
此示例介绍使用用户分配的托管标识的云部署:
export JAVA_OPTS='-Djava.security.properties==/xxx/my.java.security -Dazure.keyvault.uri=xxx -Dazure.keyvault.managed-identity=<your-managed-identity>'
此示例介绍使用系统分配的托管标识的云部署:
export JAVA_OPTS='-Djava.security.properties==/xxx/my.java.security -Dazure.keyvault.uri=xxx'
有关其中每个属性的含义,请参阅 使用 Azure Key Vault 将 TLS/SSL 证书传送到 JVM。