
aws-cli 实战使用 acm request-certificate 申请与管理 ACM 证书【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli导读本文围绕 aws-cli 中aws acm request-certificate命令展开讲解如何通过命令行向 AWS Certificate Manager (ACM) 发起新证书申请。你将掌握--domain-name、--validation-method、--subject-alternative-names、--idempotency-token、--domain-validation-options、--options等核心参数的真实用法并了解底层服务模型service-2.json对参数约束、校验方法枚举与幂等语义的定义从而写出可直接运行、行为可预期的证书申请命令。命令概览申请一张新 ACM 证书request-certificate对应的底层 API 是RequestCertificate其唯一必填参数是DomainName在 service-2.json 的required: [DomainName]中声明。最简单的申请命令如下aws acm request-certificate \ --domain-name www.example.com \ --validation-method DNS这是 request-certificate.rst 中的第一个示例为www.example.com申请证书并使用 DNS 验证方式。命令成功后服务端会立即返回一个证书 ARNRequestCertificateResponse仅包含CertificateArn一个字段格式形如arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012注意ARN 只是受理凭证证书签发需要完成域名验证验证通过前证书处于PENDING_VALIDATION状态。验证方法DNS、EMAIL 与 HTTP--validation-method的取值在服务模型中由ValidationMethod枚举严格限定service-2.json取值说明DNS在域名 DNS 记录中添加 CNAME 记录完成验证推荐使用便于 ACM 自动续期EMAIL通过向域名管理员邮箱发送验证邮件完成验证HTTP通过 HTTP 文件验证面向部分服务/集成场景ValidationMethod仅对公有证书申请有意义申请私有证书时不需要域验证因此无需指定该方法。幂等令牌防止重复申请ACM 的RequestCertificate是幂等操作。--idempotency-token用于区分多次调用令牌在一小时内超时在一小时内使用相同令牌重复调用ACM 会认为你在请求同一张证书只签发一张更换令牌则视为申请多张证书。该参数的底层约束见 service-2.json长度 132 字符且只能由\w字母、数字、下划线构成。aws acm request-certificate \ --domain-name www.example.com \ --validation-method DNS \ --idempotency-token 91adc45q在脚本或 CI 流程中重试申请时务必复用同一个令牌避免意外产生多张证书。一张证书保护多个域名SAN 与通配符ACM 证书的域名主体Common Name最多 64 字节受 RFC 5280 约束更长的域名需要放进 SAN。--subject-alternative-names用于添加主体备用名称SAN。添加单个备用域名如果需要保护www以外的访问入口可以这样aws acm request-certificate \ --domain-name example.com \ --validation-method DNS \ --idempotency-token 91adc45q \ --subject-alternative-names www.example.com这样一张证书同时覆盖example.com与www.example.com。通配符证书使用星号*可以为同一域名下的多个子域签发通配符证书aws acm request-certificate \ --domain-name example.com \ --validation-method DNS \ --idempotency-token 91adc45q \ --subject-alternative-names *.example.com该证书将保护www.example.com、site.example.com、images.example.com等同域子站点。一次添加多个 SANSAN 参数支持传入多个域名空格分隔aws acm request-certificate \ --domain-name example.com \ --validation-method DNS \ --subject-alternative-names b.example.com c.example.com d.example.com从服务模型看SAN 域名总数量上限为 100但初始配额为 10 个域名超出需申请配额提升单个 SAN 名称最长 253 字节octets由点号分隔的多个 label 组成每个 label 不得超过 63 字节。域名格式统一由DomainNameString正则约束service-2.json允许以*.开头的通配符各 label 不能以连字符开头或结尾。邮件验证场景指定验证域如果使用EMAIL验证可通过--domain-validation-options指定 ACM 发送验证邮件的域。其结构为DomainNamexxx,ValidationDomainyyyaws acm request-certificate \ --domain-name example.com \ --validation-method EMAIL \ --subject-alternative-names www.example.com \ --domain-validation-options DomainNameexample.com,ValidationDomainexample.com从底层定义看service-2.jsonDomainValidationOption的两个字段都必填且ValidationDomain必须是DomainName本身或其超域superdomain。例如申请testing.example.com的证书时可以把ValidationDomain指定为example.comACM 会向admin、administrator、hostmaster、postmaster、webmasterexample.com这五个地址发送验证邮件方便你选择真正可控的邮箱域来接收验证邮件。证书选项与透明度日志--options参数用于控制证书级选项对应模型中的CertificateOptionsservice-2.json。request-certificate.rst中给出了关闭透明度日志的示例aws acm request-certificate \ --domain-name www.example.com \ --validation-method DNS \ --options CertificateTransparencyLoggingPreferenceDISABLED \ --idempotency-token 184627需要特别说明的是该CertificateTransparencyLoggingPreference字段已被官方标记为 deprecatedservice-2.json 中deprecated: true弃用说明为 Certificate transparency logging opt-out is no longer available。证书透明度CT日志退出机制已不再可用所有公有证书都会被记录在 CT 日志中。因此在实际业务中这一项更多是历史命令的兼容性示例当前CertificateOptions中的有效选项是Export设为ENABLED可允许导出公有证书证书创建后不可再修改该值。更多进阶参数私有证书、密钥算法与标签虽然request-certificate.rst示例未涉及但RequestCertificateRequest模型还支持以下实用参数值得了解--certificate-authority-arn指定私有 CA格式arn:aws:acm-pca:region:account:certificate-authority/...用于申请私有证书。注意若想申请私有证书却不提供该 ARNACM 会尝试签发公有证书。--key-algorithm选择密钥算法。ACM 证书申请支持的算法包括RSA_2048默认、EC_prime256v1、EC_secp384r1service-2.json 中枚举还包含RSA_1024、RSA_3072、RSA_4096、EC_secp521r1但这些仅适用于导入证书。RSA 是默认算法ECDSA 密钥更小、计算效率更高但并非所有网络客户端和 AWS 服务都支持部署前需确认目标服务的兼容性要求。--tags为证书关联资源标签便于按成本中心或环境管理证书。申请后的链路验证、签发与配套命令证书申请成功只是第一步。结合本仓库awscli/examples/acm/目录下的配套命令完整生命周期如下request-certificate提交申请并拿到CertificateArn使用describe-certificate查看证书当前状态与验证记录DomainValidationOptions中会给出需要添加的 CNAME 值或待验证邮箱完成 DNS CNAME 或邮件验证后证书变为ISSUED将证书部署到 ELB、CloudFront、API Gateway 等服务或在需要时通过export-certificate、get-certificate获取证书与证书链配合 export-certificate.rst若邮件验证邮件未收到可用resend-validation-email重新发送验证邮件证书进入续期期后ACM 会为使用 DNS 验证的证书自动续期无需人工介入。仓库中 acm 目录共收录了 12 个命令示例含add-tags-to-certificate、delete-certificate、list-certificates、import-certificate等与request-certificate相互配合可以覆盖证书从申请、验证、部署到回收的完整运维闭环。总结与最佳实践综合示例文档与底层服务模型使用aws acm request-certificate时建议遵循以下实践优先使用 DNS 验证--validation-method DNS它是推荐方式且 ACM 的托管续期依赖 DNS 记录善用幂等令牌在自动化脚本中固定--idempotency-token避免重试产生重复证书令牌仅 132 字符且为字母数字下划线合理规划域名数量单张证书的 SAN 上限为 100初始配额 10主体域名Common Name不要超过 64 字节更长域名放入 SAN通配符只保护单层子域*.example.com不会覆盖a.b.example.com这类多级子域需要时叠加多个 SAN公私钥类型要匹配申请私有证书时密钥算法族RSA/ECDSA必须与 CA 密钥算法族一致CT 日志无需干预证书透明度记录已强制执行无需也无法通过--options关闭。以上所有参数约束、枚举值与幂等语义均可在仓库的 acm 服务模型 中逐一核对命令行行为以当前 aws-cli 仓库实现的模型为准。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考