Menggunakan Azure Key Vault untuk mengirimkan sertifikat TLS/SSL ke Apache Tomcat

Artikel ini menjelaskan cara mengintegrasikan Azure Key Vault ke apache Tomcat untuk mengirimkan sertifikat TLS/SSL.

Pastikan JVM dapat mengakses sertifikat TLS/SSL

Pastikan Anda mengikuti semua langkah yang diuraikan dalam Menggunakan Azure Key Vault untuk mengirimkan sertifikat TLS/SSL ke JVM.

Tambahkan konfigurasi TLS/SSL ke server.xml

Tambahkan konfigurasi berikut ke file server.xml di Tomcat. Pastikan untuk mengganti tempat penampung <your-certificate> dengan nama sertifikat di Azure Key Vault yang ingin Anda gunakan untuk TLS/SSL sisi server.

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

Mengatur properti startup yang diperlukan

Gunakan variabel lingkungan JAVA_OPTS dan CLASSPATH untuk menyiapkan lingkungan Anda sebelum memulai Tomcat. Salah satu cara untuk menentukan variabel lingkungan adalah dengan membuat skrip setenv.sh atau setenv.bat di direktori bin Tomcat.

Nota

Anda juga dapat menggunakan pendekatan lain untuk mengatur variabel lingkungan. Kami telah menguji dengan menjalankan skrip catalina.sh Tomcat atau skrip catalina.bat, serta dengan menjalankan Tomcat untuk Layanan Windows.

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

Contoh berikut dari JAVA_OPTS mencakup pengujian secara lokal dengan menggunakan perwakilan layanan.

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'

Contoh ini mencakup penyebaran cloud menggunakan identitas terkelola yang ditetapkan pengguna:

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

Contoh ini mencakup penyebaran cloud menggunakan identitas terkelola yang ditetapkan sistem:

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

Untuk arti masing-masing properti ini, lihat Menggunakan Azure Key Vault untuk mengirimkan sertifikat TLS/SSL ke JVM.

Langkah berikutnya