Partager via


Utiliser Azure Key Vault pour remettre des certificats TLS/SSL à Apache Tomcat

Cet article explique comment intégrer Azure Key Vault à Apache Tomcat pour fournir des certificats TLS/SSL.

Vérifiez que la machine virtuelle JVM peut accéder aux certificats TLS/SSL

Veillez à suivre toutes les étapes décrites dans Utiliser Azure Key Vault pour remettre des certificats TLS/SSL à la machine virtuelle JVM.

Ajouter la configuration TLS/SSL à server.xml

Ajoutez la configuration suivante au fichier server.xml dans Tomcat. Veillez à remplacer l’espace réservé <your-certificate> par le nom du certificat dans Azure Key Vault que vous souhaitez utiliser pour le protocole TLS/SSL côté serveur.

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

Définir les propriétés de démarrage requises

Utilisez les variables d’environnement JAVA_OPTS et CLASSPATH pour configurer votre environnement avant de démarrer Tomcat. L'une des façons de spécifier les variables d'environnement consiste à créer un script setenv.sh ou setenv.bat dans le répertoire bin de Tomcat.

Remarque

Vous pouvez également utiliser d’autres approches pour définir les variables d’environnement. Nous avons testé en exécutant le script catalina.sh de Tomcat ou le script catalina.bat et en exécutant le service Tomcat pour Windows.

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

L’exemple suivant de JAVA_OPTS couvre les tests locaux à l’aide d’un principal de service :

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'

Cet exemple couvre les déploiements cloud à l’aide d’une identité managée affectée par l’utilisateur :

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

Cet exemple couvre les déploiements cloud à l’aide d’une identité managée affectée par le système :

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

Pour connaître la signification de chacune de ces propriétés, consultez Utiliser Azure Key Vault pour remettre des certificats TLS/SSL à la machine virtuelle JVM.

Étapes suivantes