Använda Azure Key Vault för att leverera TLS/SSL-certifikat till Apache Tomcat

Den här artikeln beskriver hur du integrerar Azure Key Vault i Apache Tomcat för att leverera TLS/SSL-certifikat.

Kontrollera att JVM kan komma åt TLS/SSL-certifikaten

Se till att du har följt alla steg som beskrivs i Använd Azure Key Vault för att leverera TLS/SSL-certifikat till JVM-.

Lägg till TLS/SSL-konfigurationen i server.xml

Lägg till följande konfiguration i filen server.xml i Tomcat. Ersätt platshållaren <your-certificate> med namnet på certifikatet i Azure Key Vault som du vill använda för TLS/SSL på serversidan.

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

Ange nödvändiga startegenskaper

Använd miljövariablerna JAVA_OPTS och CLASSPATH för att konfigurera din miljö innan du startar Tomcat. Ett sätt att ange miljövariablerna är genom att skapa ett setenv.sh- eller setenv.bat-skript i katalogen Tomcat bin.

Anmärkning

Du kan också använda andra metoder för att ange miljövariablerna. Vi har testat genom att köra Tomcats catalina.sh skript eller catalina.bat skript och genom att köra Tomcat för Windows Service.

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

Följande exempel på JAVA_OPTS omfattar lokal testning med hjälp av en tjänstprincipal:

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'

I det här exemplet beskrivs molndistributioner med hjälp av en användartilldelad hanterad identitet:

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

I det här exemplet beskrivs molndistributioner med hjälp av en systemtilldelad hanterad identitet:

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

Innebörden av var och en av dessa egenskaper finns i Använda Azure Key Vault för att leverera TLS/SSL-certifikat till JVM-.

Nästa steg