Использование Azure Key Vault для доставки TLS/SSL-сертификатов в Apache Tomcat

В этой статье описывается, как интегрировать Azure Key Vault в Apache Tomcat для доставки TLS/SSL-сертификатов.

Убедитесь, что JVM может получить доступ к SSL-сертификатам TLS/SSL

Убедитесь, что вы выполнили все действия, описанные в статье Использование Azure Key Vault для доставки TLS/SSL-сертификатов вJVM.

Добавление конфигурации TLS/SSL в server.xml

Добавьте следующую конфигурацию в файл server.xml в Tomcat. Обязательно замените заполнитель <your-certificate> именем сертификата в Azure Key Vault, который вы хотите использовать для TLS/SSL на стороне сервера.

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

Установите необходимые свойства запуска

Используйте переменные среды JAVA_OPTS и CLASSPATH для настройки среды перед запуском Tomcat. Одним из способов указания переменных среды является создание скрипта setenv.sh или setenv.bat в каталоге bin Tomcat.

Заметка

Вы также можете использовать другие подходы для задания переменных среды. Мы проводили тестирование, запуская скрипт catalina.sh Tomcat или скрипт catalina.bat, а также запуская службу Windows для Tomcat.

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

В следующем примере JAVA_OPTS рассматривается локальное тестирование с использованием служебного принципала:

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'

В этом примере рассматриваются облачные развертывания с помощью управляемого удостоверения, назначаемого пользователем:

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

В этом примере рассматриваются облачные развертывания с помощью управляемого удостоверения, назначаемого системой:

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

Смысл каждого из этих свойств см. в статье Использование Azure Key Vault для доставки TLS/SSL-сертификатов вJVM.

Дальнейшие действия