You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform生成ACME证书时OCI密钥Base64解析错误求助

问题分析与解决

错误核心原因:ACME的Oracle Cloud DNS挑战提供者要求OCI_PRIVKEY的值是私钥内容的Base64编码字符串,而非私钥文件路径。你当前传入的是文件路径,导致提供者尝试将路径字符串当作Base64解码,从而触发非法Base64数据的错误。

修正方案

修改dns_challenge中的OCI_PRIVKEY配置,读取私钥文件内容并转换为Base64编码:

resource "acme_certificate" "example_cert" {
  account_key_pem = file("${var.acme_account_key}")
  common_name     = "test.example.io"

  dns_challenge {
    provider = "oraclecloud"
    config = {
      OCI_COMPARTMENT_OCID   = var.compartment_ocid
      OCI_TENANCY_OCID       = var.tenancy_ocid
      OCI_USER_OCID          = var.user_ocid
      OCI_REGION             = var.region
      OCI_PUBKEY_FINGERPRINT = var.fingerprint
      # 读取私钥文件并转为Base64编码
      OCI_PRIVKEY            = base64encode(file(var.private_key_path))
    }
  }
}

额外验证点

  • 确认var.private_key_path指向的私钥文件格式正确(PEM格式,无多余换行或注释)
  • 确保公钥指纹var.fingerprint与私钥匹配(可通过openssl rsa -pubout -in /Users/imtiaz/.oci/oci_api_key.pem -outform DER | openssl md5 -c命令验证)

内容的提问来源于stack exchange,提问作者intu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 10:02:44