2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure Key Vaultの証明書をApplication Gatewayで使用する

Posted at

AzureのApplication GatewayでTLS 終端を行う場合、証明書が必要です。証明書はApplication Gateway作成時にアップロードできますが、Key Vaultに事前にアップロードしてそれを利用することもできます。

#PFX証明書

Key ValutにはPEMもしくはPFXの証明書をアップロードできますが、Application Gatewayで使用するにはPFXでなければいけないみたいです。
PEM形式の証明書をApplication Gatewayから使用するとこの様なエラーが出ます。

{
 "code": "ApplicationGatewaySslCertificateInvalidData",
 "message": "Data or Password for certificate /subscriptions/xxxxxxxxxxxxxxxxx/resourceGroups/xxxx/providers/Microsoft.Network/applicationGateways/test/sslCertificates/test is invalid."
}

#秘密鍵のフォーマット
AzureのKey Vaultに証明書をアップロードするには、秘密鍵のフォーマットがPKCS#8でないとはじかれるみたいです。
-----BEGIN RSA PRIVATE KEY----- で始まっているファイルはPKCS#1で、これをそのまま使うとアップロードするときにエラーが出ます。PKCS#8は -----BEGIN PRIVATE KEY-----で始まっています。 PKCS#1をPKCS#8に変更するには、以下のようして行えます。

openssl pkcs8 -topk8 -inform PEM -in ./private_v1.key -out private_v8.key -nocrypt

#PEMからPFX証明書を作成
PEMフォーマットの証明書からPFXフォーマットの証明書を作成するのは、以下の通りです。中間証明書がある場合はあらかじめpublic.pemにコピーしておきます。

openssl pkcs12 -export -out my_cert.pfx -inkey private_v8.key -in public.pem

#Key Valutへアップロード
AzureのKey Valutへアップロードします。

image.png

image.png

ここでは証明書の名前をmycertとしておきます。

#Terraformから参照
アップロードした証明書はTerraformから以下のような感じで、参照できます。

#証明書を使用していますが、参照するときはazurerm_key_vault_secretを使います。
data "azurerm_key_vault_secret" "my_cert" {
  name         = "mycert" #アップロードした時の証明書の名前
  key_vault_id = data.azurerm_key_vault.my_keyvault.id
}

resource "azurerm_application_gateway" "my_appgateway" {
...
  ssl_certificate {
    name                = "mycompany.com"
    key_vault_secret_id = data.azurerm_key_vault_secret.my_cert.id 
  }
}

詳しくはこちらに書かれていますが、

key_vault_secret_id - (Optional) Secret Id of (base-64 encoded unencrypted pfx)

PFX証明書のシークレットIDと指定されているので、azurerm_key_vault_secretを使ってIDを取得します。

これで、Key Vaultにアップロードした証明書をApplication Gatewayから使用することができます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?