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

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

Certifique-se de que a JVM possa acessar os certificados TLS/SSL

Certifique-se de seguir todas as etapas descritas em Usar o Cofre da Chave do Azure para entregar certificados TLS/SSL à JVM.

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

Adicione a seguinte configuração ao arquivo server.xml no Tomcat. Certifique-se de substituir o espaço reservado <your-certificate> pelo nome do certificado no Cofre da Chave do Azure que você deseja usar para TLS/SSL do 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 setenv.sh ou setenv.bat no diretório bin do Tomcat .

Observação

Você também pode usar outras abordagens para definir as variáveis de ambiente. Testamos executando o script catalina.sh ou catalina.bat do Tomcat 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 um principal 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 abrange implantações na 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 abrange implantações na nuvem usando uma identidade gerenciada atribuída ao sistema:

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

Para saber o significado de cada uma dessas propriedades, consulte Usar o Cofre da Chave do Azure para entregar certificados TLS/SSL à JVM.

Próximos passos