Usar o Azure Key Vault para fornecer certificados TLS/SSL ao Apache Tomcat

Este artigo descreve como integrar o Azure Key Vault ao Apache Tomcat para fornecer certificados TLS/SSL.

Verifique se a JVM pode acessar os certificados TLS/SSL

Verifique se você seguiu todas as etapas descritas no Usar o Azure Key Vault para entregar certificados TLS/SSL aoJVM.

Adicionar a configuração de TLS/SSL ao server.xml

Adicione a configuração a seguir ao arquivo server.xml no Tomcat. Certifique-se de substituir o marcador <your-certificate> pelo nome do certificado no Azure Key Vault que você deseja usar para TLS/SSL no lado do 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>

Definir as propriedades de inicialização necessárias

Use as variáveis de ambiente JAVA_OPTS e CLASSPATH para configurar seu ambiente antes de iniciar o Tomcat. Uma maneira de especificar as variáveis de ambiente é criando um script, como um setenv.sh ou setenv.bat, no diretório bin do Tomcat.

Nota

Você também pode usar outras abordagens para definir as variáveis de ambiente. Testamos executando o script catalina.sh do Tomcat ou catalina.bat script e executando o Serviço Tomcat para Windows.

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

O exemplo a seguir de JAVA_OPTS abrange testes locais usando uma entidade de serviço:

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'

Este exemplo aborda implantações de nuvem usando uma identidade gerenciada atribuída pelo usuário:

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

Este exemplo aborda implantações de nuvem usando uma identidade gerenciada atribuída pelo sistema:

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

Para obter o significado de cada uma dessas propriedades, consulte Usar o Azure Key Vault para entregar certificados TLS/SSL aoJVM.

Próximas etapas