AutoSSL
部署憑證

AWS S3

如何把 SSL 憑證自動部署到 AWS S3 儲存貯體。

總覽

AutoSSL 可以把 SSL 憑證檔案自動上傳到 Amazon S3 儲存貯體。每張憑證都會寫入帶版本的歸檔路徑,並同步更新 latest/ 路徑,方便下游系統(例如 Nginx、Caddy,或從 S3 擷取憑證的自訂指令碼)取得目前憑證。

如何管理和執行此部署,請參見 部署管理。

設定參數

在 AutoSSL 控制台新增或編輯此部署目標時,需要設定以下參數:

參數說明範例
區域S3 儲存貯體所在的 AWS 區域。us-east-1
儲存貯體名稱要上傳憑證檔案的 S3 儲存貯體名稱。my-ssl-certs
物件金鑰字首(選填) 用於在儲存貯體中整理憑證檔案的字首。設定後,檔案會上傳到該字首下。末尾的斜槓可有可無。certs/example.com/

運作方式

AutoSSL 把憑證部署到 AWS S3 儲存貯體(例如 my-ssl-certs(us-east-1,字首 certs/example.com/))時,會執行以下步驟:

  1. 準備憑證:

    • 將完整憑證鏈拆成單獨的 PEM 檔案:cert.pem(葉憑證)、privkey.pem(私密金鑰,PKCS#8 編碼)、chain.pem(中繼憑證鏈)和 fullchain.pem(完整憑證鏈)。
    • 產生包含憑證後設資料的 README.md,並附上 https://autossl.dev 連結,便於追溯。
    • 解析憑證的 notBefore 日期和 SHA1 指紋,產生歸檔目錄名(格式:YYYY-MM-DD_<first 8 chars of SHA1>)。
  2. 上傳檔案:

    • 把憑證檔案(四個 PEM 檔案和 README.md)上傳到儲存貯體中的 兩個路徑:
      • 歸檔路徑 — certs/example.com/2026-05-30_e5f6a7b8/cert.pem(以及 privkey.pem、chain.pem、fullchain.pem、README.md)。每次簽發都使用唯一路徑,不會被覆寫。
      • 最新路徑 — certs/example.com/latest/cert.pem(以及 privkey.pem、chain.pem、fullchain.pem、README.md)。此路徑始終是最近一次上傳的憑證。

下游服務可以透過固定的 S3 物件金鑰從 latest/ 路徑取得目前憑證。歷史憑證仍保留在各自的版本歸檔目錄中。

儲存貯體結構範例

多次續期後,儲存貯體結構類似這樣:

certs/example.com/
├── 2026-03-01_a1b2c3d4/
│   ├── cert.pem
│   ├── privkey.pem
│   ├── chain.pem
│   ├── fullchain.pem
│   └── README.md
├── 2026-05-30_e5f6a7b8/
│   ├── cert.pem
│   ├── privkey.pem
│   ├── chain.pem
│   ├── fullchain.pem
│   └── README.md
└── latest/
    ├── cert.pem
    ├── privkey.pem
    ├── chain.pem
    ├── fullchain.pem
    └── README.md

私密金鑰格式

privkey.pem 使用 PKCS#8 格式(-----BEGIN PRIVATE KEY-----)。現代 Web 伺服器和工具(Nginx、Caddy、Traefik、OpenSSL 1.1+ 等)普遍支援此格式。

如果環境需要 PKCS#1 格式(例如 RSA 金鑰的 -----BEGIN RSA PRIVATE KEY-----),請在本地轉換後再使用:

openssl rsa -in privkey.pem -out privkey-pkcs1.pem

存取金鑰需求

要呼叫 AWS API,此供應商需要 AWS 存取金鑰。

所需權限

存取金鑰必須屬於有權向目標 S3 儲存貯體上傳物件的 AWS IAM 使用者。

需要為該使用者附加 IAM 政策,至少對目標儲存貯體字首包含以下操作:

  • s3:PutObject

最小 IAM 政策範例:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::my-ssl-certs/certs/example.com/*"
    }
  ]
}

關於如何管理 IAM 權限,請參見 AWS IAM 文件。

AWS S3 | AutoSSL