ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AWS CLI acm-pca import-certificate-authority-certificate 实战指南:导入 CA 证书激活私有 CA

AWS CLI acm-pca import-certificate-authority-certificate 实战指南:导入 CA 证书激活私有 CA AWS CLI acm-pca import-certificate-authority-certificate 实战指南导入 CA 证书激活私有 CA【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli导读import-certificate-authority-certificate是 AWS CLI 中 AWS Private Certificate AuthorityACM Private CA服务标识acm-pca的关键命令用于将外部根 CA 或从属 CA 签署后的 CA 证书导入 AWS使处于PENDING_CERTIFICATE状态的私有 CA 正式生效ACTIVE。本文以本仓库awscli/examples/acm-pca/import-certificate-authority-certificate.rst中的官方示例为主线完整展开命令参数、前置流程、证书链构建规则与源码级约束帮助读者掌握通过命令行完成外部信任链接入 AWS Private CA的完整闭环。命令概览与官方示例原示例文档给出了最直接的调用形态import-certificate-authority-certificate.rstaws acm-pca import-certificate-authority-certificate \ --certificate-authority-arn arn:aws:acm-pca:us-west-2:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012 \ --certificate file://C:\ca_cert.pem \ --certificate-chain file://C:\ca_cert_chain.pem要点说明--certificate-authority-arn目标私有 CA 的 ARN格式为arn:aws:acm-pca:region:account:certificate-authority/uuid必须是调用create-certificate-authority时返回的 ARN。--certificate待导入的 PEM 编码 CA 证书。若是根 CA则为自签名证书若是从属 CA则为被上层 CA 签发的证书。--certificate-chain除被导入证书外向上链接至根 CA 的完整 PEM 证书链。导入根 CA 时无需该参数导入从属 CA 时必须提供。示例中的file://C:\...表明证书与证书链以文件形式传入Windows 路径写法在 Linux/macOS 下替换为file:///path/to/ca_cert.pem即可。使用file://前缀可避免在命令行内粘贴多行 PEM 文本带来的转义问题。为什么需要导入 CA 证书CA 生命周期中的关键环节从服务模型看私有 CA 创建后并不会自动可用。在 service-2.json 中定义的 CA 状态机包含CREATING→PENDING_CERTIFICATE→ACTIVE此外还有DISABLED、EXPIRED、FAILED、DELETED等状态PENDING_CERTIFICATECA 已创建、CSR 已生成但签名后的证书尚未导入——此时 CA 无法签发任何证书ACTIVE签名证书导入成功后的正常可用状态若 CA 在PENDING_CERTIFICATE状态下被删除恢复后仍需通过import-certificate-authority-certificate重新导入证书才能再次激活。因此本命令是整个 CA 生命周期中从待激活走向可签发的必经步骤官方调用链是创建 CA → 取 CSR → 外部签署 → 导入证书。导入前的四步准备流程根据 service-2.json 中ImportCertificateAuthorityCertificate操作的服务端文档调用本命令前必须具备以下前置条件创建私有 CA调用 create-certificate-authority 创建计划承载外部证书的私有 CA例如aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://C:\ca_config.txt \ --revocation-configuration file://C:\revoke_config.txt \ --certificate-authority-type SUBORDINATE \ --idempotency-token 98256344获取 CSR调用 get-certificate-authority-csr 取得该 CA 的证书签名请求aws acm-pca get-certificate-authority-csr \ --certificate-authority-arn arn:aws:acm-pca:us-west-2:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012 \ --output text返回的 CSR 是 base64 PEM 编码字符串。外部签署 CSR使用本地on-premisesPKI 层级中的根/中间 CA或商业 CA 对 CSR 签名。准备证书与证书链文件将签名后的证书与证书链复制到工作目录供--certificate与--certificate-chain引用。参数详解与源码约束以下约束直接取自 service-2.json 中ImportCertificateAuthorityCertificateRequest的 shape 定义参数是否必填类型/上限说明CertificateAuthorityArn是string长度 5–200须匹配 ARN pattern目标私有 CA 的 ARNCertificate是blob1 Byte–32 KBmax: 32768PEM 编码的 CA 证书本体CertificateChain否导入从属 CA 时必须提供blob0–2 MBmax: 2097152向上链接至根 CA 的完整 PEM 证书链从源码结构可以看出Certificate与CertificateChain均以二进制 blob 传输type 为blob最大分别允许 32 KB 与 2 MB这决定了导入文件的大小上限。ARN 字段还受 pattern 约束arn:[\w/,.-]:acm-pca:...格式错误会直接触发InvalidArnException。三种导入场景AWS Private CA 支持以下三类安装 CA 证书的场景命令参数对应关系如下导入根 CA 证书根由 AWS Private CA 托管证书自签名--certificate指向自签名根证书不传--certificate-chain。导入从属 CA 证书父 CA 托管于 AWS Private CA--certificate指向从属 CA 证书--certificate-chain需包含父 CA 及其以上直至根 CA 的证书链。导入从属 CA 证书父 CA 外部托管--certificate指向由外部根/中间 CA 签发的证书--certificate-chain包含外部证书链。这正是命令服务端文档所述链的根位于 AWS Private CA 之外的典型场景。导入时的硬性校验规则导入并非简单的文件上传服务端会执行严格校验以下规则来自 service-2.json 中操作文档只有自签名证书可以作为根 CA 导入自签名证书不能作为从属 CA 导入证书链中不得包含正在导入的那张 CA 证书根 CA 必须是证书链的最后一张根 CA 签发的从属证书倒数第二逐级向上排列直至根整条链必须为 PEM 编码证书最大 32 KB证书链最大 2 MB与 shape 约束一致。关键扩展Critical Constraints的强制执行服务端仅允许以下扩展在导入的 CA 证书或证书链中被标记为 critical允许标记为 critical 的扩展Authority key identifier、Basic constraints必须标记为 critical、Certificate policies、Extended key usage、Inhibit anyPolicy、Issuer alternative name、Key usage、Name constraints、Policy mappings、Subject alternative name、Subject directory attributes、Subject key identifier、Subject information access。被拒绝若标记为 critical 将导致导入失败的扩展Authority information access、CRL distribution points、Freshest CRL、Policy constraints。此外任何不在允许列表中的扩展一旦被标记为 critical导入请求也会被拒绝。关联命令与完整工作流导入完成后可以串联本仓库awscli/examples/acm-pca/下的其他示例完成完整闭环签发私有证书issue-certificate.rstaws acm-pca issue-certificate \ --certificate-authority-arn arn:aws:acm-pca:us-west-2:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012 \ --csr file://C:\cert_1.csr \ --signing-algorithm SHA256WITHRSA \ --validity Value365,TypeDAYS \ --idempotency-token 1234取回 CA 证书与证书链用于分发get-certificate-authority-certificate.rstaws acm-pca get-certificate-authority-certificate \ --certificate-authority-arn arn:aws:acm-pca:us-west-2:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012 \ --output text验证导入是否完成describe-certificate-authority可查询 CA 状态是否由PENDING_CERTIFICATE转为ACTIVE在脚本自动化中也可利用本仓库 waiters-2.json 中定义的 waiter如CertificateAuthorityCSRCreated延迟 3 秒、最多 60 次尝试轮询 CSR 可用性再执行导入。异常与排错命令在 service-2.json 中声明了如下错误类型可作为排错指引异常含义依据服务模型CertificateMismatchException导入的 CA 证书不符合签发它的证书所规定的条件MalformedCertificateException证书格式不符合要求如 PEM 解析失败、大小超限InvalidRequestException请求参数非法InvalidStateExceptionCA 当前状态不允许导入如非PENDING_CERTIFICATEInvalidArnExceptionARN 格式不符合 pattern 约束ResourceNotFoundException指定的 CA 不存在ConcurrentModificationException/RequestInProgressException并发冲突或服务端处理中RequestFailedException请求处理失败实操中若导入被拒优先检查证书链顺序根必须在最后、链中是否误含被导入证书本身、扩展的 critical 标记是否落入拒绝列表以及 PEM 文件是否完整无误-----BEGIN CERTIFICATE-----/-----END CERTIFICATE-----成对出现。总结aws acm-pca import-certificate-authority-certificate是实现外部信任根接入 AWS Private CA的唯一入口命令创建 CA、导出并签署 CSR、按规则组织证书链后通过--certificate与--certificate-chain将签名证书导入即可把 CA 从PENDING_CERTIFICATE推进到ACTIVE。本文给出的参数表、硬性校验规则、关键扩展策略与异常清单均可在本仓库 service-2.json 及其 示例文档 中逐条核对可作为日常运维与自动化脚本的权威参考。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进