Usare Azure Key Vault per distribuire certificati TLS/SSL ad Apache Tomcat

Questo articolo descrive come integrare Azure Key Vault in Apache Tomcat per distribuire certificati TLS/SSL.

Assicurarsi che la JVM possa accedere ai certificati TLS/SSL

Assicurarsi di aver seguito tutti i passaggi descritti in Usare Azure Key Vault per distribuire certificati TLS/SSL alla JVM.

Aggiungere la configurazione TLS/SSL a server.xml

Aggiungere la configurazione seguente al file server.xml in Tomcat. Assicurarsi di sostituire il segnaposto <your-certificate> con il nome del certificato in Azure Key Vault da usare per TLS/SSL sul lato server.

<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>

Impostare le proprietà di avvio necessarie

Usare le variabili di ambiente JAVA_OPTS e CLASSPATH per configurare l'ambiente prima di avviare Tomcat. Un modo per specificare le variabili di ambiente consiste nel creare un setenv.sh o uno script di setenv.bat nella directory bin Tomcat .

Nota

È anche possibile usare altri approcci per impostare le variabili di ambiente. Abbiamo testato eseguendo lo script catalina.sh di Tomcat o lo script catalina.bat ed eseguendo il servizio di Tomcat per Windows.

export JAVA_OPTS="-Djava.security.properties==/xxx/my.java.security"
export CLASSPATH="/xxx/azure-security-keyvault-jca.jar"

L'esempio seguente di JAVA_OPTS illustra i test locali usando un service principal:

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'

Questo esempio illustra le distribuzioni cloud usando un'identità gestita assegnata dall'utente:

export JAVA_OPTS='-Djava.security.properties==/xxx/my.java.security -Dazure.keyvault.uri=xxx -Dazure.keyvault.managed-identity=<your-managed-identity>'

Questo esempio illustra le distribuzioni cloud usando un'identità gestita assegnata dal sistema:

export JAVA_OPTS='-Djava.security.properties==/xxx/my.java.security -Dazure.keyvault.uri=xxx'

Per il significato di ognuna di queste proprietà, vedere Usare Azure Key Vault per distribuire certificati TLS/SSL alla JVM.

Passaggi successivi