Aracılığıyla paylaş


Azure Key Vault'u kullanarak JVM'ye TLS/SSL sertifikaları teslim etme

Bu makalede, TLS/SSL sertifikaları teslim etmek için Azure Key Vault'u JVM ile tümleştirme açıklanmaktadır.

JCA sağlayıcısını java.security dosyasına ekleme

JCA sağlayıcısını kaydetmek için JVM'nin bunu bilmesi gerekir. Bu görevi gerçekleştirmek için aşağıdaki adımları kullanın:

  1. JVM yüklemenizin içinde java.security dosyasının bir kopyasını yapın ve dosyayı my.java.security olarak adlandırın.

  2. dosyasının içinde satırını security.provider.<maximum-value>bulun. Yer tutucuyu <maximum-value> tüm girdiler arasında bu konumdaki en büyük değerle değiştirin. Örneğin: security.provider.13=SunPKCS11.

  3. Bu girdinin sayısını 1 artır. Örneğin, security.provider.13 olmalıdır security.provider.14.

  4. Aşağıdaki satırı ekleyin:

    security.provider.14=com.azure.security.keyvault.jca.KeyVaultJcaProvider
    

Dekont

Her security.provider.<X> girişin için <X>farklı bir sayı değeri olduğundan emin olun ve bunları 1 ile başlayarak artımlı olarak sıralı tutun.

Uygulamanızı çalıştırma

Uygulamanızı çalıştırmak için aşağıdaki adımları kullanın ve yer tutucuları kendi değerlerinizle değiştirin <...> :

  1. azure-security-keyvault-jca-X.Y.Z.jar dosyasını classpath'e ekleyin. Örneğin, Tomcat 9 ile tümleştirmek istiyorsanız, tomcat9w.exe kullanarak azure-security-keyvault-jca-X.Y.Z.jar dosyasının tam yolunu Java sınıf yoluna eklemeniz gerekir.

  2. Komut satırına ekleyin -Djava.security.properties==my.java.security .

  3. Hangi Azure Key Vault'un kullanılacağını belirtmek için komut satırına ekleyin -Dazure.keyvault.uri=<your-keyvault-uri> . Örneğin: -Dazure.keyvault.uri=https://some.vault.azure.net/.

  4. Senaryonuza bağlı olarak aşağıdaki listede belirtilen bağımsız değişkenleri ekleyin:

    • Hizmet sorumlusu kullanarak kimlik doğrulaması yaparsanız aşağıdaki bağımsız değişkenleri ekleyin:

      • -Dazure.keyvault.tenant-id=<your-tenant-id>
      • -Dazure.keyvault.client-id=<your-client-id>
      • -Dazure.keyvault.client-secret=<your-client-secret>
    • Sistem tarafından atanan bir yönetilen kimlik kullanarak kimlik doğrulaması yaparsanız, artık bağımsız değişken gerekmez.

    • Kullanıcı tarafından atanan bir yönetilen kimlik kullanarak kimlik doğrulaması yaparsanız aşağıdaki bağımsız değişkeni ekleyin:

      • -Dazure.keyvault.managed-identity=<object-id-of-your-user-managed-identity>

Bu kimlik doğrulama senaryoları hakkında daha fazla bilgi için bkz . Microsoft Entra Id'deki uygulama ve hizmet sorumlusu nesneleri ve Azure kaynakları için yönetilen kimliklerin Azure sanal makineleriyle çalışma şekli.

Hizmet sorumlusu kullanma

Azure istemci kimliği ve Azure istemci gizli dizisi oluşturmak için aşağıdaki komutu kullanın ve yer tutucuları kendi değerlerinizle değiştirin <...> . Döndürülen değerleri , , passwordtenantgibi appIddepolamayı unutmayın.

export CLIENT_NAME=<your-client-name>
az ad sp create-for-rbac --skip-assignment --name ${CLIENT_NAME}
export CLIENT_ID=$(az ad sp list --display-name ${CLIENT_NAME} | jq -r '.[0].appId')
az ad app credential reset --id ${CLIENT_ID}

Döndürülen değerleri daha sonra kullanabilmeniz için depolayın.

tarafından CLIENT_ID belirtilen istemcinin hedef Key Vault'a erişebile olduğundan emin olun. Erişim vermek için aşağıdaki komutu kullanın ve yer tutucusunu <your-key-vault-name> değiştirin:

az keyvault set-policy \
    --name <your-key-vault-name> \
    --spn ${CLIENT_ID} \
    --secret-permissions get list \
    --certificate-permissions get list \
    --key-permissions get list

Yönetilen kimlik kullanma

Sistem tarafından atanan yönetilen kimliği etkinleştirmek veya kullanıcı tarafından atanan yönetilen kimlik oluşturmak için Azure CLI kullanarak Azure VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma başlığındaki yönergeleri izleyin

Yönetilen kimliğin nesne kimliğini aldıktan sonra, yönetilen kimliğiniz için Key Vault'unuzun erişim ilkesini oluşturmak üzere aşağıdaki komutu kullanın:

az keyvault set-policy \
    --name <your-key-vault-name> \
    --object-id <object-id-of-your-managed-identity> \
    --secret-permissions get list \
    --certificate-permissions get list \
    --key-permissions get list

Dekont

Yönetilen kimliğin nesne kimliği, kullanıcı tarafından atanan yönetilen kimlik kullanılırken asıl kimlik olarak da adlandırılır.

İstemci/sunucu tarafı TLS/SSL örnekleri

İstemci/sunucu tarafı TLS/SSL örnekleri için Java için Azure Key Vault JCA istemci kitaplığının Örnekler bölümüne bakın.

Sonraki adımlar