我正在尝试使用Azure服务主体运行terraform,我正在尝试使用证书来执行此操作,现在我有pfx文件及其密码,我在pem中转换了它并通过命令行登录以测试证书是否正在工作,这是案例,现在当我尝试使用 pfx 运行 terraform 时,出现以下错误
构建 ARM 配置时出错:发生 1 个错误: │ * 客户端证书路径不是有效的 pfx 文件:pkcs12:未知摘要算法:2.16.840.1.101.3.4.2.1
或
构建 ARM 配置时出错:发生 1 个错误: │ * 客户端证书路径不是有效的 pfx 文件:pkcs12:预计 PFX PDU 中正好有两个安全包
这是我的提供商.tf
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "3.75.0"
}
null = {
source = "hashicorp/null"
}
}
backend "azurerm" {
resource_group_name = "xxxxxxxx"
storage_account_name = "xxxxxxxxx"
container_name = "tfstate"
key = "terraform.tfstate"
client_id = "xxxxxxxxxxxxxxxxxxxxxxxxxx"
tenant_id = "xxxxxxxxxxxxxxxxxxx"
client_certificate_path = "/cert.pfx"
client_certificate_password = "xxxxxxxxxxxxxxxx"
subscription_id = "xxxxxxxxxxxxxxxxxx"
}
}
provider "azurerm" {
features {}
skip_provider_registration = true
}```
使用带有客户端证书的服务主体进行 Terraform 身份验证
Terraform 和 Azure 遇到的错误可能源于 PFX (PKCS#12) 证书文件的格式或处理问题。当证书不是预期的格式,或者 terraform 不完全支持证书中使用的特定加密元素(例如算法)时,通常会发生此类错误。
确保您将正确的
.cer
证书上传到相应的服务主体,并上传到 .pfx
位置的正确路径,以便消除不必要的错误。
我的地形代码:
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
}
}
backend "azurerm" {
resource_group_name = "vinay-rg"
storage_account_name = "storagevksb"
container_name = "testvk"
key = "terraform.tfstate"
}
}
provider "azurerm" {
features {}
subscription_id = "Sub_ID"
client_id = "Client_ID"
tenant_id = "Tenent_ID"
client_certificate_path = "C:\\pathforthefile\\vsbcert.pfx"
client_certificate_password = "password"
}
resource "azurerm_resource_group" "test"{
name = "test-rg"
location = "east us"
}
Deployment succeeded: