本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
颁发私有终端实体证书
有了私有 CA 后,您可以从 Amazon Certificate Manager (ACM) 或 Amazon 私有 CA请求私有终端实体证书。下表对两项服务的功能进行了比较。
能力 |
ACM |
Amazon 私有 CA |
---|---|---|
颁发终端实体证书 |
✓(使用 RequestCertificate 或控制台) |
✓(使用 IssueCertificate) |
与负载均衡器和面向互联网的服务 Amazon 关联 |
✓ |
不支持 |
托管证书续订 | ✓ | 通过以下方式间接支持 ACM |
控制台支持 |
✓ |
不支持 |
API支持 |
✓ |
✓ |
CLI支持 |
✓ |
✓ |
Amazon 私有 CA 创建证书时,它遵循指定证书类型和路径长度的模板。如果没有ARN为创建证书的API或CLI语句提供模板,则默认情况下会应用 EndEntityCertificate/V1 模板。有关可用证书模板的更多信息,请参阅 使用 Amazon Private CA 证书模板。
虽然ACM证书是围绕公共信任而设计的 Amazon 私有 CA ,但可以满足您的私人需求PKI。因此,您可以使用 Amazon 私有 CA API和以不允许CLI的方式配置证书ACM。这些功能包括:
-
创建具有任何使用者名称的证书。
-
使用任何支持的私有密钥算法和密钥长度。
-
使用任何支持的签名算法。
使用创建私有TLS证书后 Amazon 私有 CA,您可以将其导入ACM并与支持的 Amazon 服务一起使用。
注意
使用以下步骤、使用issue-certificate命令或IssueCertificateAPI操作创建的证书不能直接导出以供外部使用 Amazon。但是,您可以使用私有 CA 对通过颁发的证书进行签名ACM,并且这些证书可以与其密钥一起导出。有关更多信息,请参阅ACM用户指南中的申请私有证书和导出私有证书。
颁发标准证书 (Amazon CLI)
您可以使用 Amazon 私有 CA CLI命令 issue-certificate 或API操作IssueCertificate来申请最终实体证书。此命令需要您要用来颁发证书的私有 CA 的 Amazon 资源名称 (ARN)。您还必须使用诸如 Ope n
如果您使用 Amazon 私有 CA API或 Amazon CLI 颁发私有证书,则该证书处于非托管状态,这意味着您无法使用ACM控制台、ACMCLI、查看或ACMAPI导出该证书,也不会自动续订证书。但是,您可以使用 PCA get- certificate 命令来检索证书详细信息,如果您拥有 CA,则可以创建审计报告。
创建证书时的注意事项
根据 RFC5280
,您提供的域名(严格来说是公用名)的长度不能超过 64 个八位字节(字符),包括句点。要添加更长的域名,请在“使用者备用名称”字段中指定该名称,该字段支持长度不超过 253 个八位字节的名称。 -
如果您使用的是 1.6.3 或更高 Amazon CLI 版本,请在指定 base64 编码的输入文件
fileb://
时使用前缀,例如。CSRs这样可以确保正确 Amazon 私有 CA 解析数据。
以下 O SSL pen 命令为证书生成CSR和私钥:
$
openssl req -out
csr.pem
-new -newkey rsa:2048
-nodes -keyoutprivate-key.pem
您可以按以下方式检查CSR其内容:
$
openssl req -in
csr.pem
-text -noout
生成的输出应与以下简短示例类似:
Certificate Request: Data: Version: 0 (0x0) Subject: C=US, O=Big Org, CN=example.com Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:ca:85:f4:3a:b7:5f:e2:66:be:fc:d8:97:65:3d: a4:3d:30:c6:02:0a:9e:1c:ca:bb:15:63:ca:22:81: 00:e1:a9:c0:69:64:75:57:56:53:a1:99:ee:e1:cd: ... aa:38:73:ff:3d:b7:00:74:82:8e:4a:5d:da:5f:79: 5a:89:52:e7:de:68:95:e0:16:9b:47:2d:57:49:2d: 9b:41:53:e2:7f:e1:bd:95:bf:eb:b3:a3:72:d6:a4: d3:63 Exponent: 65537 (0x10001) Attributes: a0:00 Signature Algorithm: sha256WithRSAEncryption 74:18:26:72:33:be:ef:ae:1d:1e:ff:15:e5:28:db:c1:e0:80: 42:2c:82:5a:34:aa:1a:70:df:fa:4f:19:e2:5a:0e:33:38:af: 21:aa:14:b4:85:35:9c:dd:73:98:1c:b7:ce:f3:ff:43:aa:11: .... 3c:b2:62:94:ad:94:11:55:c2:43:e0:5f:3b:39:d3:a6:4b:47: 09:6b:9d:6b:9b:95:15:10:25:be:8b:5c:cc:f1:ff:7b:26:6b: fa:81:df:e4:92:e5:3c:e5:7f:0e:d8:d9:6f:c5:a6:67:fb:2b: 0b:53:e5:22
以下命令创建证书。由于未指定模板,因此默认情况下会颁发基本终端实体证书。
$
aws acm-pca issue-certificate \ --certificate-authority-arn arn:
aws
:acm-pca:us-east-1
:111122223333
:certificate-authority/11223344-1234-1122-2233-112233445566
\ --csr fileb://csr.pem
\ --signing-algorithm "SHA256WITHRSA
" \ --validity Value=365
,Type="DAYS
"
将返回已颁发ARN的证书的:
{
"CertificateArn":"arn:aws:acm-pca:region
:account
:certificate-authority/CA_ID
/certificate/certificate_ID
"
}
注意
Amazon 私有 CA 当它收到issue-certificate命令时,会立即返回ARN带有序列号的。但是,证书处理是异步进行的,仍然可能失败。如果发生这种情况,使用新get-certificate命令的命令ARN也会失败。
使用APIPassthrough模板颁发带有自定义主题名称的证书
在此示例中,颁发的证书包含自定义使用者名称元素。除了提供中CSR类似的参数外颁发标准证书 (Amazon CLI),您还可以向issue-certificate命令传递两个额外的参数:APIPassthrough模板的,以及指定自定义属性及其对象标识符的JSON配置文件 (OIDs)。ARN您不能与一起使用CustomAttributes
。但是,您可以通过标准OIDs作为其StandardAttributes
中的一部分CustomAttributes
。下表OIDs列出了默认主题名称(来自 RFC4519
使用者名称 |
缩写 |
对象 ID |
---|---|---|
countryName |
c |
2.5.4.6 |
commonName |
cn |
2.5.4.3 |
dnQualifier [可分辨名称限定符] |
2.5.4.46 |
|
generationQualifier |
2.5.4.44 |
|
givenName |
2.5.4.42 |
|
initials |
2.5.4.43 |
|
locality |
l |
2.5.4.7 |
organizationName |
o |
2.5.4.10 |
organizationalUnitName |
ou |
2.5.4.11 |
pseudonym |
2.5.4.65 |
|
serialNumber |
2.5.4.5 |
|
st [状态] |
2.5.4.8 |
|
surname |
sn |
2.5.4.4 |
title |
2.5.4.12 |
|
domainComponent |
dc |
0.9.2342.19200300.100.1.25 |
userid |
0.9.2342.19200300.100.1.1 |
示例配置文件 api_passthrough_config.txt
包含以下代码:
{ "Subject": { "CustomAttributes": [ { "ObjectIdentifier": "2.5.4.6", "Value": "US" }, { "ObjectIdentifier": "1.3.6.1.4.1.37244.1.1", "Value": "BCDABCDA12341234" }, { "ObjectIdentifier": "1.3.6.1.4.1.37244.1.5", "Value": "CDABCDAB12341234" } ] } }
使用以下命令颁发证书:
$
aws acm-pca issue-certificate \ --validity Type=
DAYS
,Value=10
--signing-algorithm "SHA256WITHRSA
" \ --csr fileb://csr.pem
\ --api-passthrough file://api_passthrough_config.txt
\ --template-arn arn:aws:acm-pca:::template/BlankEndEntityCertificate_APIPassthrough/V1 \ --certificate-authority-arn arn:aws
:acm-pca:us-east-1
:111122223333
:certificate-authority/11223344-1234-1122-2233-112233445566
将返回已颁发ARN的证书的:
{ "CertificateArn":"arn:aws:acm-pca:
region
:account
:certificate-authority/CA_ID
/certificate/certificate_ID
" }
按如下方式在本地检索证书:
$
aws acm-pca get-certificate \ --certificate-authority-arn arn:
aws
:acm-pca:us-east-1
:111122223333
:certificate-authority/11223344-1234-1122-2233-112233445566
\ --certificate-arn arn:aws:acm-pca:region
:account
:certificate-authority/CA_ID
/certificate/certificate_ID
| \ jq -r .'Certificate' >cert.pem
你可以使用 Open 来检查证书的内容SSL:
$
openssl x509 -in
cert.pem
-text -noout
注意
也可以创建一个私有 CA,将自定义属性传递给它颁发的每个证书。
使用APIPassthrough模板颁发带有自定义扩展名的证书
在此示例中,颁发的证书包含自定义扩展。为此,你需要向issue-certificate命令传递三个参数:APIPassthrough模板的,以及指定自定义扩展名的JSON配置文件,以及CSR如中所示的配置文件颁发标准证书 (Amazon CLI)。ARN
示例配置文件 api_passthrough_config.txt
包含以下代码:
{ "Extensions": { "CustomExtensions": [ { "ObjectIdentifier": "2.5.29.30", "Value": "MBWgEzARgg8ucGVybWl0dGVkLnRlc3Q=", "Critical": true } ] } }
自定义证书的颁发方式如下:
$
aws acm-pca issue-certificate \ --validity Type=DAYS,Value=10 --signing-algorithm "SHA256WITHRSA" \ --csr fileb://
csr.pem
\ --api-passthrough file://api_passthrough_config.txt
\ --template-arn arn:aws:acm-pca:::template/EndEntityCertificate_APIPassthrough/V1 \ --certificate-authority-arn arn:aws
:acm-pca:us-east-1
:111122223333
:certificate-authority/11223344-1234-1122-2233-112233445566
将返回已颁发ARN的证书的:
{
"CertificateArn":"arn:aws:acm-pca:region
:account
:certificate-authority/CA_ID
/certificate/certificate_ID
"
}
按如下方式在本地检索证书:
$
aws acm-pca get-certificate \ --certificate-authority-arn arn:
aws
:acm-pca:us-east-1
:111122223333
:certificate-authority/11223344-1234-1122-2233-112233445566
\ --certificate-arn arn:aws:acm-pca:region
:account
:certificate-authority/CA_ID
/certificate/certificate_ID
| \ jq -r .'Certificate' >cert.pem
你可以使用 Open 来检查证书的内容SSL:
$
openssl x509 -in
cert.pem
-text -noout