创建 CA 的过程(CLI) - Amazon Private Certificate Authority
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建 CA 的过程(CLI)

使用create-certificate-authority命令创建私有 CA。必须指定 CA 配置(包含算法和使用者名称信息)、吊销配置(如果您计划使用 OCSP 和/或 CRL)和 CA 类型(根或从属)。配置和吊销配置详细信息包含在您作为命令参数提供的两个文件中。或者,您还可以配置 CA 使用模式(用于颁发标准或短期证书)、附加标签和提供幂等性令牌。

如果您正在配置 CRL,则在发出 create-certificate-authority 命令之前,必须准备好安全的 Amazon S3 桶。有关更多信息,请参阅 Amazon S3 中 CRL 的访问策略

CA 配置文件可指定以下信息:

  • 算法的名称

  • 要用于创建 CA 私钥的密钥大小

  • CA 用来签名的签名算法的类型

  • X.500 主题信息

OCSP 的吊销配置定义了一个包含以下信息的 OcspConfiguration 对象:

  • Enabled 标签设置为“true”。

  • (可选)声明为 OcspCustomCname 值的自定义 CNAME。

CRL 的吊销配置定义了一个包含以下信息的 CrlConfiguration 对象:

  • Enabled 标签设置为“true”。

  • CRL 有效期,以天为单位(CRL 的有效期)。

  • 将包含 CRL 的 Amazon S3 桶。

  • (可选)确定 CRL 是否可公开访问的 S3 ObjectAcl 值。在此处提供的示例中,阻止公共访问。有关更多信息,请参阅 使用启用 S3 阻止公共访问 (BPA) CloudFront

  • (可选)CA 颁发的证书中包含的 S3 桶的 CNAME 别名。如果 CRL 不可公开访问,则将指向诸如 Amazon CloudFront 之类的分发机制。

  • (可选)包含以下信息的CrlDistributionPointExtensionConfiguration对象:

    • OmitExtension标志设置为 “真” 或 “假”。这控制是否将 CDP 扩展的默认值写入 CA 颁发的证书。有关 CDP 扩展的更多信息,请参阅确定 CRL 分发点 (CDP) URI 。如果为 “true” OmitExtension ,则 CustomCname 无法设置 A。

注意

通过定义 OcspConfiguration 对象和 CrlConfiguration 对象,可以在同一 CA 上启用两种吊销机制。如果不提供任何 --revocation-configuration 参数,则默认情况下两种机制均处于禁用状态。如果您以后需要吊销验证支持,请参阅 更新 CA(CLI)

以下示例假设您已使用有效的默认区域、端点和凭证设置了 .aws 配置目录。有关配置 Amazon CLI 环境的信息,请参阅配置和凭证文件设置。为了便于阅读,我们在示例命令中以 JSON 文件的形式提供 CA 配置和吊销输入。根据需要修改示例文件以供您使用。

除非另有说明,否则所有示例都使用以下 ca_config.txt 配置文件。

文件:ca_config.txt

{ "KeyAlgorithm":"RSA_2048", "SigningAlgorithm":"SHA256WITHRSA", "Subject":{ "Country":"US", "Organization":"Example Corp", "OrganizationalUnit":"Sales", "State":"WA", "Locality":"Seattle", "CommonName":"www.example.com" } }

示例 1:创建启用 OCSP 的 CA

在此示例中,吊销文件启用默认 OCSP 支持,即使用 Amazon 私有 CA 响应器检查证书状态。

文件:适用于 OCSP 的 revoke_config.txt

{ "OcspConfiguration":{ "Enabled":true } }

命令

$ aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://ca_config.txt \ --revocation-configuration file://revoke_config.txt \ --certificate-authority-type "ROOT" \ --idempotency-token 01234567 \ --tags Key=Name,Value=MyPCA

如果成功,此命令将输出新 CA 的 Amazon 资源名称(ARN)。

{ "CertificateAuthorityArn":"arn:aws:acm-pca:region:account: certificate-authority/CA_ID" }

命令

$ aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://ca_config.txt \ --revocation-configuration file://revoke_config.txt \ --certificate-authority-type "ROOT" \ --idempotency-token 01234567 \ --tags Key=Name,Value=MyPCA-2

如果成功,此命令将输出 CA 的 Amazon 资源名称(ARN)。

{ "CertificateAuthorityArn":"arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" }

使用以下命令检查 CA 的配置。

$ aws acm-pca describe-certificate-authority \ --certificate-authority-arn "arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" \ --output json

此描述应包含以下部分。

"RevocationConfiguration": { ... "OcspConfiguration": { "Enabled": true } ... }

示例 2:创建启用 OCSP 和自定义 CNAME 的 CA

在此示例中,吊销文件启用了自定义 OCSP 支持。OcspCustomCname 参数采用完全限定域名(FQDN)作为其值。

在此字段中提供 FQDN 时,将 FQDN Amazon 私有 CA 插入到每个已颁发证书的授权信息访问扩展插件中,以代替 Amazon OCSP 响应者的默认 URL。当端点收到包含自定义 FQDN 的证书时,它会查询该地址以获取 OCSP 响应。要使此机制发挥作用,您需要采取另外两个操作:

  • 使用代理服务器将到达您的自定义 FQDN 的流量转发给 Amazon OCSP 响应器。

  • 将相应的 CNAME 记录添加到您的 DNS 数据库。

提示

有关使用自定义 CNAME 实现完整 OCSP 解决方案的更多信息,请参阅 为 Amazon 私有 CA OCSP 配置自定义 URL

例如,以下是自定义 OCSP 的 CNAME 记录,该记录将在 Amazon Route 53 中显示。

记录名称 类型 路由策略 优势 值/流量路由至

alternative.example.com

别名记录 简便 - proxy.example.com
注意

CNAME 的值不得包含协议前缀,例如“http://”或“https://”。

文件:适用于 OCSP 的 revoke_config.txt

{ "OcspConfiguration":{ "Enabled":true, "OcspCustomCname":"alternative.example.com" } }

命令

$ aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://ca_config.txt \ --revocation-configuration file://revoke_config.txt \ --certificate-authority-type "ROOT" \ --idempotency-token 01234567 \ --tags Key=Name,Value=MyPCA-3

如果成功,此命令将输出 CA 的 Amazon 资源名称(ARN)。

{ "CertificateAuthorityArn":"arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" }

使用以下命令检查 CA 的配置。

$ aws acm-pca describe-certificate-authority \ --certificate-authority-arn "arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" \ --output json

此描述应包含以下部分。

"RevocationConfiguration": { ... "OcspConfiguration": { "Enabled": true, "OcspCustomCname": "alternative.example.com" } ... }

示例 3:创建带有附加 CRL 的 CA

在此示例中,吊销配置定义了 CRL 参数。

文件:revoke_config.txt

{ "CrlConfiguration":{ "Enabled":true, "ExpirationInDays":7, "S3BucketName":"DOC-EXAMPLE-BUCKET" } }

命令

$ aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://ca_config.txt \ --revocation-configuration file://revoke_config.txt \ --certificate-authority-type "ROOT" \ --idempotency-token 01234567 \ --tags Key=Name,Value=MyPCA-1

如果成功,此命令将输出 CA 的 Amazon 资源名称(ARN)。

{ "CertificateAuthorityArn":"arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" }

使用以下命令检查 CA 的配置。

$ aws acm-pca describe-certificate-authority \ --certificate-authority-arn "arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" \ --output json

此描述应包含以下部分。

"RevocationConfiguration": { ... "CrlConfiguration": { "Enabled": true, "ExpirationInDays": 7, "S3BucketName": "DOC-EXAMPLE-BUCKET" }, ... }

示例 4:创建带有附加 CRL 并启用自定义 CNAME 的 CA

在此示例中,吊销配置定义了包含自定义 CNAME 的 CRL 参数。

文件:revoke_config.txt

{ "CrlConfiguration":{ "Enabled":true, "ExpirationInDays":7, "CustomCname": "alternative.example.com", "S3BucketName":"DOC-EXAMPLE-BUCKET" } }

命令

$ aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://ca_config.txt \ --revocation-configuration file://revoke_config.txt \ --certificate-authority-type "ROOT" \ --idempotency-token 01234567 \ --tags Key=Name,Value=MyPCA-1

如果成功,此命令将输出 CA 的 Amazon 资源名称(ARN)。

{ "CertificateAuthorityArn":"arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" }

使用以下命令检查 CA 的配置。

$ aws acm-pca describe-certificate-authority \ --certificate-authority-arn "arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" \ --output json

此描述应包含以下部分。

"RevocationConfiguration": { ... "CrlConfiguration": { "Enabled": true, "ExpirationInDays": 7, "CustomCname": "alternative.example.com", "S3BucketName": "DOC-EXAMPLE-BUCKET", ... } }

示例 5:创建 CA 并指定使用模式

在此示例中,CA 使用模式是在创建 CA 时指定的。如果未指定,则使用模式参数默认为 GENERAL_PURPOSE。在此示例中,参数设置为 SHORT_LIVED_CERTIFICATE,这意味着 CA 将颁发最长有效期为七天的证书。在配置吊销不方便的情况下,已被泄露的短期证书很快就会过期,这是正常操作的一部分。因此,此示例 CA 缺少吊销机制。

注意

Amazon 私有 CA 不对根 CA 证书执行有效性检查。

$ aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://ca_config.txt \ --certificate-authority-type "ROOT" \ --usage-mode SHORT_LIVED_CERTIFICATE \ --tags Key=usageMode,Value=SHORT_LIVED_CERTIFICATE

使用中的describe-certificate-authority命令显示 Amazon CLI 有关生成的 CA 的详细信息,如以下命令所示:

$ aws acm-pca describe-certificate-authority \ --certificate-authority-arn arn:aws:acm:region:account:certificate-authority/CA_ID
{ "CertificateAuthority":{ "Arn":"arn:aws:acm-pca:region:account:certificate-authority/CA_ID", "CreatedAt":"2022-09-30T09:53:42.769000-07:00", "LastStateChangeAt":"2022-09-30T09:53:43.784000-07:00", "Type":"ROOT", "UsageMode":"SHORT_LIVED_CERTIFICATE", "Serial":"serial_number", "Status":"PENDING_CERTIFICATE", "CertificateAuthorityConfiguration":{ "KeyAlgorithm":"RSA_2048", "SigningAlgorithm":"SHA256WITHRSA", "Subject":{ "Country":"US", "Organization":"Example Corp", "OrganizationalUnit":"Sales", "State":"WA", "Locality":"Seattle", "CommonName":"www.example.com" } }, "RevocationConfiguration":{ "CrlConfiguration":{ "Enabled":false }, "OcspConfiguration":{ "Enabled":false } }, ...

示例 6:创建用于 Active Directory 登录的 CA

您可以创建适合在 Microsoft Active Directory(AD)的 Enterprise NTAuth 存储中使用的私有 CA,它可以在其中颁发卡登录或域控制器证书。有关将 CA 证书导入 AD 的信息,请参阅如何将第三方证书颁发机构(CA)证书导入企业 NTAuth 存储

通过调用 -dspublish 选项,可以使用 Microsoft certutil 工具在 AD 中发布 CA 证书。使用 certutil 发布到 AD 的证书在整个林中都受信任。使用组策略,您还可以将信任限制为整个林的子集,例如单个域或域中的一组计算机。要使登录生效,还必须在 NTauth 存储中发布颁发 CA。有关更多信息,请参阅使用组策略将证书分发到客户端计算机

此示例使用以下 ca_config_AD.txt 配置文件。

文件:ca_config_AD.txt

{ "KeyAlgorithm":"RSA_2048", "SigningAlgorithm":"SHA256WITHRSA", "Subject":{ "CustomAttributes":[ { "ObjectIdentifier":"2.5.4.3", "Value":"root CA" }, { "ObjectIdentifier":"0.9.2342.19200300.100.1.25", "Value":"example" }, { "ObjectIdentifier":"0.9.2342.19200300.100.1.25", "Value":"com" } ] } }

命令

$ aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://ca_config_AD.txt \ --certificate-authority-type "ROOT" \ --tags Key=application,Value=ActiveDirectory

如果成功,此命令将输出 CA 的 Amazon 资源名称(ARN)。

{ "CertificateAuthorityArn":"arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" }

使用以下命令检查 CA 的配置。

$ aws acm-pca describe-certificate-authority \ --certificate-authority-arn "arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" \ --output json

此描述应包含以下部分。

... "Subject":{ "CustomAttributes":[ { "ObjectIdentifier":"2.5.4.3", "Value":"root CA" }, { "ObjectIdentifier":"0.9.2342.19200300.100.1.25", "Value":"example" }, { "ObjectIdentifier":"0.9.2342.19200300.100.1.25", "Value":"com" } ] } ...

示例 7:创建一个 Matter CA,附带一个 CRL,且已颁发的证书中省略了 CDP 扩展名

您可以创建适合颁发 Matter 智能家居标准证书的私有 CA。在此示例中,中的 CA 配置ca_config_PAA.txt定义了将供应商 ID (VID) 设置为 FFF1 的 Matter 产品认证机构 (PAA)。

文件:ca_config_PAA.txt

{ "KeyAlgorithm":"EC_prime256v1", "SigningAlgorithm":"SHA256WITHECDSA", "Subject":{ "Country":"US", "Organization":"Example Corp", "OrganizationalUnit":"SmartHome", "State":"WA", "Locality":"Seattle", "CommonName":"Example Corp Matter PAA", "CustomAttributes":[ { "ObjectIdentifier":"1.3.6.1.4.1.37244.2.1", "Value":"FFF1" } ] } }

撤销配置启用 CRL,并将 CA 配置为在任何已颁发的证书中省略默认 CDP URL。

文件:revoke_config.txt

{ "CrlConfiguration":{ "Enabled":true, "ExpirationInDays":7, "S3BucketName":"DOC-EXAMPLE-BUCKET", "CrlDistributionPointExtensionConfiguration":{ "OmitExtension":true } } }

命令

$ aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://ca_config_PAA.txt \ --revocation-configuration file://revoke_config.txt \ --certificate-authority-type "ROOT" \ --idempotency-token 01234567 \ --tags Key=Name,Value=MyPCA-1

如果成功,此命令将输出 CA 的 Amazon 资源名称(ARN)。

{ "CertificateAuthorityArn":"arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" }

使用以下命令检查 CA 的配置。

$ aws acm-pca describe-certificate-authority \ --certificate-authority-arn "arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566" \ --output json

此描述应包含以下部分。

"RevocationConfiguration": { ... "CrlConfiguration": { "Enabled": true, "ExpirationInDays": 7, "S3BucketName": "DOC-EXAMPLE-BUCKET", "CrlDistributionPointExtensionConfiguration":{ "OmitExtension":true } }, ... } ...