Używanie usługi Azure Key Vault do dostarczania certyfikatów TLS/SSL do serwera Apache Tomcat

W tym artykule opisano sposób integrowania usługi Azure Key Vault z serwerem Apache Tomcat w celu dostarczania certyfikatów TLS/SSL.

Upewnij się, że maszyny JVM mogą uzyskiwać dostęp do certyfikatów TLS/SSL

Upewnij się, że wykonano wszystkie kroki opisane w Używanie usługi Azure Key Vault do dostarczania certyfikatów TLS/SSL doJVM.

Dodawanie konfiguracji protokołu TLS/SSL do server.xml

Dodaj następującą konfigurację do pliku server.xml w usłudze Tomcat. Pamiętaj, aby zastąpić symbol zastępczy <your-certificate> nazwą certyfikatu w usłudze Azure Key Vault, który ma być używany dla protokołu TLS/SSL po stronie serwera.

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

Ustawianie wymaganych właściwości uruchamiania

Użyj zmiennych środowiskowych JAVA_OPTS i CLASSPATH, aby skonfigurować środowisko przed uruchomieniem serwera Tomcat. Jednym ze sposobów określenia zmiennych środowiskowych jest utworzenie skryptu setenv.sh lub setenv.bat w katalogu bin tomcat.

Notatka

Można również użyć innych metod ustawiania zmiennych środowiskowych. Przetestowaliśmy, uruchamiając skrypt catalina.sh serwera Tomcat lub skrypt catalina.bat oraz uruchamiając serwer Tomcat dla usługi systemu Windows.

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

Poniższy przykład JAVA_OPTS obejmuje testowanie lokalne przy użyciu principału usługi:

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'

W tym przykładzie opisano wdrożenia w chmurze przy użyciu tożsamości zarządzanej przypisanej przez użytkownika:

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

W tym przykładzie opisano wdrożenia w chmurze przy użyciu tożsamości zarządzanej przypisanej przez system:

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

Aby uzyskać znaczenie każdej z tych właściwości, zobacz Używanie usługi Azure Key Vault do dostarczania certyfikatów TLS/SSL doJVM.

Następne kroki