本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 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-token01234567
\ --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-token01234567
\ --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-token01234567
\ --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-token01234567
\ --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-token01234567
\ --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
此示例使用以下 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-token01234567
\ --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
}
},
...
}
...