Uso de Azure Key Vault para entregar certificados TLS/SSL a Apache Tomcat

En este artículo se describe cómo integrar Azure Key Vault en Apache Tomcat para entregar certificados TLS/SSL.

Asegúrese de que JVM puede acceder a los certificados TLS/SSL.

Asegúrese de seguir todos los pasos descritos en Uso de Azure Key Vault para entregar certificados TLS/SSL a JVM.

Adición de la configuración tls/SSL a server.xml

Agregue la siguiente configuración al archivo server.xml en Tomcat. Asegúrese de reemplazar el marcador de posición <your-certificate> por el nombre del certificado en Azure Key Vault que desea usar para TLS/SSL del lado servidor.

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

Establecimiento de las propiedades de inicio necesarias

Use las variables de entorno JAVA_OPTS y CLASSPATH para configurar el entorno antes de iniciar Tomcat. Una manera de especificar las variables de entorno es crear un script de setenv.sh o setenv.bat en el directorio bin de Tomcat .

Nota

También puede usar otros enfoques para establecer las variables de entorno. Hemos probado ejecutando el script de catalina.sh de Tomcat o el script de catalina.bat y ejecutando el servicio Tomcat para Windows.

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

En el ejemplo siguiente de JAVA_OPTS se tratan las pruebas locales mediante una entidad de servicio.

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'

En este ejemplo se tratan las implementaciones en la nube mediante una identidad administrada asignada por el usuario:

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

En este ejemplo se tratan las implementaciones en la nube mediante una identidad administrada asignada por el sistema:

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

Para obtener el significado de cada una de estas propiedades, consulte Uso de Azure Key Vault para entregar certificados TLS/SSL a JVM.

Pasos siguientes