這篇來聊聊 AWS Certificate Manager 的使用,寫這篇的起因是原本以為 AWS Certificate Manager (ACM) 只是一個很簡單提供 CA / SSL 憑證的服務,仔細讀完 documentation 後才發現有許多寶可以挖。
Spec
ACM 主要產生的 SSL 憑證規格為 X.509 第三版本,每一個憑證的有效期間為 13 個月。
ACM generates X.509 version 3 certificates. Each is valid for 13 months and contains the following extensions.
ACM 支援 AWS All Region,除了使用 CloudFront 時只能到 US East (N. Virginia) 以外。
- 一個帳號預設上限 1000 個 ACM 憑證
- 一個帳號預設上限 1000 個 匯入 憑證
- 一張 ACM 憑證預設上限 10 個 Domain (一般外面購買的憑證只能一個 Domain)
- 一個帳號預設上限 10 個 Private CA 憑證
- 一張 Private CA 憑證預設上限 50,000 個憑證
安全性
Amazon 本身就擁有 CA root 的授權資格,所以 ACM 最上層的 Root CA 就是 Amazon CA
Certificate Manager 主要用在哪些場景 ?
- 需要有 SSL 憑證的 CloudFront、ELB、API Gateway。
- 私有 CA 憑證。
ACM 怎麼自動 renew 憑證 ?
這一題很多人問,參考官方文件「How Domain Validation Works」分為兩種方式
- Email 驗證:
- 必須與 AWS 資源關聯,例如:CloudFront、ELB、API Gateway。
- AWS 會定期訪問該網域的「example.com」和「www.example.com」的 HTTPS 取得憑證資訊,如果 AWS 訪問不到該網域的 HTTPS 位置就會驗證失敗。
- 因 GDPR 關係只接受特定 system email 進行驗證,參考「AWS ACM 針對 GDPR 後修改的 email validate domain 規範」
- DNS 驗證 (建議):
- 確保該網域 CNAME 有指定的 txt record。
如果 ACM 嘗試 renew 失敗的話,會寄送 Email 信件通知給 Domain System 並且在過期的 45 days, 30 days, 15 days, 7 days, 3 days, and 1 day 在「AWS Personal Health Dashboard」出現通知。
參考資料:
- Amazon API Gateway Integrates with AWS Certificate Manager (ACM)
- How can I add certificates for multiple domains to the ELB using Amazon Certificate Manager?