创建和安装 CA 证书 - AWS Private Certificate Authority

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

创建和安装 CA 证书

请完成以下过程以创建和安装私有 CA 证书。然后您就可以使用 CA。

AWS 私有 CA 支持安装 CA 证书的三种方案:

  • 为托管的根 CA 安装证书 AWS 私有 CA

  • 安装由 AWS 私有 CA托管其父颁发机构的从属 CA 证书

  • 安装其父颁发机构在外部托管的从属 CA 证书

以下各节介绍了每个方案的过程。控制台过程从控制台页面私有 CA 开始。

兼容的签名算法

CA 证书的签名算法支持取决于父 CA 的签名算法和 AWS 区域。以下限制适用于控制台和 AWS CLI 操作。

  • 采用 RSA 签名算法的父 CA 可以使用以下算法颁发证书:

    • SHA256 RSA

    • SHA384 RSA

    • SHA512 RSA

  • 在旧版中 AWS 区域,采用 EDCSA 签名算法的父 CA 可以使用以下算法颁发证书:

    • SHA256 ECDSA

    • SHA384 ECDSA

    • SHA512 ECDSA

    遗产 AWS 区域 包括:

    区域名称

    地理位置

    eu-north-1

    欧洲地区(斯德哥尔摩)

    me-south-1

    中东(巴林)

    ap-south-1

    亚太地区(孟买)

    eu-west-3

    欧洲地区(巴黎)

    us-east-2

    美国东部(俄亥俄州)

    af-south-1

    非洲(开普敦)

    eu-west-1

    欧洲地区(爱尔兰)

    eu-central-1

    欧洲地区(法兰克福)

    sa-east-1

    South America(São Paulo)

    ap-east-1

    亚太地区(香港)

    us-east-1

    美国东部(弗吉尼亚州北部)

    ap-northeast-2

    亚太地区(首尔)

    eu-west-2

    欧洲地区(伦敦)

    ap-northeast-1

    亚太地区(东京)

    us-gov-east-1

    AWS GovCloud (美国东部)

    us-gov-west-1

    AWS GovCloud (美国西部)

    us-west-2

    US West(Oregon)

    us-west-1

    美国西部(北加利福尼亚)

    ap-southeast-1

    亚太地区(新加坡)

    ap-southeast-2

    亚太地区(悉尼)

  • 在非旧版中 AWS 区域,以下规则适用于 EDCSA:

    • 采用 EC_prime256v1 签名算法的父 CA 可以使用 ECDSA P256 颁发证书。

    • 采用 EC_secp384r1 签名算法的父 CA 可以使用 ECDSA P384 颁发证书。

安装根 CA 证书

您可以从 AWS Management Console 或安装根 CA 证书 AWS CLI。

为私有根 CA 创建和安装证书(控制台)
  1. (可选)如果您尚未进入 CA 的详细信息页面,请从 https://console.aws.amazon.com/acm-pca/home 打开 AWS 私有 CA 控制台。在私有证书颁发机构页面上,选择状态为待处理证书活动的根 CA。

  2. 选择操作安装 CA 证书以打开安装根 CA 证书页面。

  3. 指定根 CA 证书参数下,指定以下证书参数:

    • 有效期 – 指定 CA 证书的到期日期和时间。根 CA 证书的 AWS 私有 CA 默认有效期为 10 年。

    • 签名算法 – 指定根 CA 颁发新证书时使用的签名算法。可用选项因您创建 CA 的 AWS 区域 位置而异。有关更多信息,请参阅兼容的签名算法支持的加密算法、和SigningAlgorithmCertificateAuthorityConfiguration

      • SHA256 RSA

      • SHA384 RSA

      • SHA512 RSA

    检查您的设置是否正确,然后选择 “确认并安装”。 AWS 私有 CA 为您的 CA 导出 CSR,使用根 CA 证书模板生成证书,并对证书进行自签名。 AWS 私有 CA 然后导入自签名的根 CA 证书。

  4. CA 的详细信息页面顶部显示安装状态(成功或失败)。如果安装成功,新完成的根 CA 将在常规窗格中显示为活动

为私有根 CA 创建和安装证书(AWS CLI)
  1. 生成证书签名请求(CSR)。

    $ aws acm-pca get-certificate-authority-csr \ --certificate-authority-arn arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566 \ --output text \ --region region > ca.csr

    生成的文件 ca.csr 是以 base64 格式编码的 PEM 文件,其内容显示如下。

    -----BEGIN CERTIFICATE REQUEST----- MIIC1DCCAbwCAQAwbTELMAkGA1UEBhMCVVMxFTATBgNVBAoMDEV4YW1wbGUgQ29y cDEOMAwGA1UECwwFU2FsZXMxCzAJBgNVBAgMAldBMRgwFgYDVQQDDA93d3cuZXhh bXBsZS5jb20xEDAOBgNVBAcMB1NlYXR0bGUwggEiMA0GCSqGSIb3DQEBAQUAA4IB DwAwggEKAoIBAQDD+7eQChWUO2m6pHslI7AVSFkWvbQofKIHvbvy7wm8VO9/BuI7 LE/jrnd1jGoyI7jaMHKXPtEP3uNlCzv+oEza07OjgjqPZVehtA6a3/3vdQ1qCoD2 rXpv6VIzcq2onx2X7m+Zixwn2oY1l1ELXP7I5g0GmUStymq+pY5VARPy3vTRMjgC JEiz8w7VvC15uIsHFAWa2/NvKyndQMPaCNft238wesV5s2cXOUS173jghIShg99o ymf0TRUgvAGQMCXvsW07MrP5VDmBU7k/AZ9ExsUfMe2OB++fhfQWr2N7/lpC4+DP qJTfXTEexLfRTLeLuGEaJL+c6fMyG+Yk53tZAgMBAAGgIjAgBgkqhkiG9w0BCQ4x EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAA7xxLVI5s1B qmXMMT44y1DZtQx3RDPanMNGLGO1TmLtyqqnUH49Tla+2p7nrl0tojUf/3PaZ52F QN09SrFk8qtYSKnMGd5PZL0A+NFsNW+w4BAQNKlg9m617YEsnkztbfKRloaJNYoA HZaRvbA0lMQ/tU2PKZR2vnao444Ugm0O/t3jx5rj817b31hQcHHQ0lQuXV2kyTrM ohWeLf2fL+K0xJ9ZgXD4KYnY0zarpreA5RBeO5xs3Ms+oGWc13qQfMBx33vrrz2m dw5iKjg71uuUUmtDV6ewwGa/VO5hNinYAfogdu5aGuVbnTFT3n45B8WHz2+9r0dn bA7xUel1SuQ= -----END CERTIFICATE REQUEST-----

    您可以使用 OpenSSL 查看和验证 CSR 的内容。

    openssl req -text -noout -verify -in ca.csr

    这会生成类似以下内容的输出。

    verify OK Certificate Request: Data: Version: 0 (0x0) Subject: C=US, O=Example Corp, OU=Sales, ST=WA, CN=www.example.com, L=Seattle Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:c3:fb:b7:90:0a:15:94:3b:69:ba:a4:7b:25:23: b0:15:48:59:16:bd:b4:28:7c:a2:07:bd:bb:f2:ef: 09:bc:54:ef:7f:06:e2:3b:2c:4f:e3:ae:77:75:8c: 6a:32:23:b8:da:30:72:97:3e:d1:0f:de:e3:65:0b: 3b:fe:a0:4c:da:d3:b3:a3:82:3a:8f:65:57:a1:b4: 0e:9a:df:fd:ef:75:0d:6a:0a:80:f6:ad:7a:6f:e9: 52:33:72:ad:a8:9f:1d:97:ee:6f:99:8b:1c:27:da: 86:35:97:51:0b:5c:fe:c8:e6:0d:06:99:44:ad:ca: 6a:be:a5:8e:55:01:13:f2:de:f4:d1:32:38:02:24: 48:b3:f3:0e:d5:bc:2d:79:b8:8b:07:14:05:9a:db: f3:6f:2b:29:dd:40:c3:da:08:d7:ed:db:7f:30:7a: c5:79:b3:67:17:39:44:b5:ef:78:e0:84:84:a1:83: df:68:ca:67:f4:4d:15:20:bc:01:90:30:25:ef:b1: 6d:3b:32:b3:f9:54:39:81:53:b9:3f:01:9f:44:c6: c5:1f:31:ed:8e:07:ef:9f:85:f4:16:af:63:7b:fe: 5a:42:e3:e0:cf:a8:94:df:5d:31:1e:c4:b7:d1:4c: b7:8b:b8:61:1a:24:bf:9c:e9:f3:32:1b:e6:24:e7: 7b:59 Exponent: 65537 (0x10001) Attributes: Requested Extensions: X509v3 Basic Constraints: critical CA:TRUE Signature Algorithm: sha256WithRSAEncryption 0e:f1:c4:b5:48:e6:cd:41:aa:65:cc:31:3e:38:cb:50:d9:b5: 0c:77:44:33:da:9c:c3:46:2c:63:b5:4e:62:ed:ca:aa:a7:50: 7e:3d:4e:56:be:da:9e:e7:ae:5d:2d:a2:35:1f:ff:73:da:67: 9d:85:40:dd:3d:4a:b1:64:f2:ab:58:48:a9:cc:19:de:4f:64: bd:00:f8:d1:6c:35:6f:b0:e0:10:10:34:a9:60:f6:6e:b5:ed: 81:2c:9e:4c:ed:6d:f2:91:96:86:89:35:8a:00:1d:96:91:bd: b0:34:94:c4:3f:b5:4d:8f:29:94:76:be:76:a8:e3:8e:14:82: 6d:0e:fe:dd:e3:c7:9a:e3:f3:5e:db:df:58:50:70:71:d0:d2: 54:2e:5d:5d:a4:c9:3a:cc:a2:15:9e:2d:fd:9f:2f:e2:b4:c4: 9f:59:81:70:f8:29:89:d8:d3:36:ab:a6:b7:80:e5:10:5e:3b: 9c:6c:dc:cb:3e:a0:65:9c:d7:7a:90:7c:c0:71:df:7b:eb:af: 3d:a6:77:0e:62:2a:38:3b:d6:eb:94:52:6b:43:57:a7:b0:c0: 66:bf:54:ee:61:36:29:d8:01:fa:20:76:ee:5a:1a:e5:5b:9d: 31:53:de:7e:39:07:c5:87:cf:6f:bd:af:47:67:6c:0e:f1:51: e9:75:4a:e4
  2. 使用上一步中的 CSR 作为 --csr 参数的参数,颁发根证书。

    注意

    如果您使用的是 1.6.3 或更高 AWS CLI 版本,请在指定所需的输入文件fileb://时使用前缀。这样可以确保正确 AWS 私有 CA 解析 Base64 编码的数据。

    $ aws acm-pca issue-certificate \ --certificate-authority-arn arn:aws:acm-pca:region:account:certificate-authority/CA_ID \ --csr file://ca.csr \ --signing-algorithm SHA256WITHRSA \ --template-arn arn:aws:acm-pca:::template/RootCACertificate/V1 \ --validity Value=365,Type=DAYS
  3. 检索根证书。

    $ 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 \ --output text > cert.pem

    生成的文件 cert.pem 是以 base64 格式编码的 PEM 文件,其内容显示如下。

    -----BEGIN CERTIFICATE----- MIIDpzCCAo+gAwIBAgIRAIIuOarlQETlUQEOZJGZYdIwDQYJKoZIhvcNAQELBQAw bTELMAkGA1UEBhMCVVMxFTATBgNVBAoMDEV4YW1wbGUgQ29ycDEOMAwGA1UECwwF U2FsZXMxCzAJBgNVBAgMAldBMRgwFgYDVQQDDA93d3cuZXhhbXBsZS5jb20xEDAO BgNVBAcMB1NlYXR0bGUwHhcNMjEwMzA4MTU0NjI3WhcNMjIwMzA4MTY0NjI3WjBt MQswCQYDVQQGEwJVUzEVMBMGA1UECgwMRXhhbXBsZSBDb3JwMQ4wDAYDVQQLDAVT YWxlczELMAkGA1UECAwCV0ExGDAWBgNVBAMMD3d3dy5leGFtcGxlLmNvbTEQMA4G A1UEBwwHU2VhdHRsZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMP7 t5AKFZQ7abqkeyUjsBVIWRa9tCh8oge9u/LvCbxU738G4jssT+Oud3WMajIjuNow cpc+0Q/e42ULO/6gTNrTs6OCOo9lV6G0Dprf/e91DWoKgPatem/pUjNyraifHZfu b5mLHCfahjWXUQtc/sjmDQaZRK3Kar6ljlUBE/Le9NEyOAIkSLPzDtW8LXm4iwcU BZrb828rKd1Aw9oI1+3bfzB6xXmzZxc5RLXveOCEhKGD32jKZ/RNFSC8AZAwJe+x bTsys/lUOYFTuT8Bn0TGxR8x7Y4H75+F9BavY3v+WkLj4M+olN9dMR7Et9FMt4u4 YRokv5zp8zIb5iTne1kCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E FgQUaW3+r328uTLokog2TklmoBK+yt4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3 DQEBCwUAA4IBAQAXjd/7UZ8RDE+PLWSDNGQdLemOBTcawF+tK+PzA4Evlmn9VuNc g+x3oZvVZSDQBANUz0b9oPeo54aE38dW1zQm2qfTab8822aqeWMLyJ1dMsAgqYX2 t9+u6w3NzRCw8Pvz18V69+dFE5AeXmNP0Z5/gdz8H/NSpctjlzopbScRZKCSlPid Rf3ZOPm9QP92YpWyYDkfAU04xdDo1vR0MYjKPkl4LjRqSU/tcCJnPMbJiwq+bWpX 2WJoEBXB/p15Kn6JxjI0ze2SnSI48JZ8it4fvxrhOo0VoLNIuCuNXJOwU17Rdl1W YJidaq7je6k18AdgPA0Kh8y1XtfUH3fTaVw4 -----END CERTIFICATE-----

    您可以使用 OpenSSL 查看和验证证书的内容。

    openssl x509 -in cert.pem -text -noout

    这会生成类似以下内容的输出。

    Certificate: Data: Version: 3 (0x2) Serial Number: 82:2e:39:aa:e5:40:44:e5:51:01:0e:64:91:99:61:d2 Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, O=Example Corp, OU=Sales, ST=WA, CN=www.example.com, L=Seattle Validity Not Before: Mar 8 15:46:27 2021 GMT Not After : Mar 8 16:46:27 2022 GMT Subject: C=US, O=Example Corp, OU=Sales, ST=WA, CN=www.example.com, L=Seattle Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:c3:fb:b7:90:0a:15:94:3b:69:ba:a4:7b:25:23: b0:15:48:59:16:bd:b4:28:7c:a2:07:bd:bb:f2:ef: 09:bc:54:ef:7f:06:e2:3b:2c:4f:e3:ae:77:75:8c: 6a:32:23:b8:da:30:72:97:3e:d1:0f:de:e3:65:0b: 3b:fe:a0:4c:da:d3:b3:a3:82:3a:8f:65:57:a1:b4: 0e:9a:df:fd:ef:75:0d:6a:0a:80:f6:ad:7a:6f:e9: 52:33:72:ad:a8:9f:1d:97:ee:6f:99:8b:1c:27:da: 86:35:97:51:0b:5c:fe:c8:e6:0d:06:99:44:ad:ca: 6a:be:a5:8e:55:01:13:f2:de:f4:d1:32:38:02:24: 48:b3:f3:0e:d5:bc:2d:79:b8:8b:07:14:05:9a:db: f3:6f:2b:29:dd:40:c3:da:08:d7:ed:db:7f:30:7a: c5:79:b3:67:17:39:44:b5:ef:78:e0:84:84:a1:83: df:68:ca:67:f4:4d:15:20:bc:01:90:30:25:ef:b1: 6d:3b:32:b3:f9:54:39:81:53:b9:3f:01:9f:44:c6: c5:1f:31:ed:8e:07:ef:9f:85:f4:16:af:63:7b:fe: 5a:42:e3:e0:cf:a8:94:df:5d:31:1e:c4:b7:d1:4c: b7:8b:b8:61:1a:24:bf:9c:e9:f3:32:1b:e6:24:e7: 7b:59 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: 69:6D:FE:AF:7D:BC:B9:32:E8:92:88:36:4E:49:66:A0:12:BE:CA:DE X509v3 Key Usage: critical Digital Signature, Certificate Sign, CRL Sign Signature Algorithm: sha256WithRSAEncryption 17:8d:df:fb:51:9f:11:0c:4f:8f:2d:64:83:34:64:1d:2d:e9: 8e:05:37:1a:c0:5f:ad:2b:e3:f3:03:81:2f:96:69:fd:56:e3: 5c:83:ec:77:a1:9b:d5:65:20:d0:04:03:54:cf:46:fd:a0:f7: a8:e7:86:84:df:c7:56:d7:34:26:da:a7:d3:69:bf:3c:db:66: aa:79:63:0b:c8:9d:5d:32:c0:20:a9:85:f6:b7:df:ae:eb:0d: cd:cd:10:b0:f0:fb:f3:d7:c5:7a:f7:e7:45:13:90:1e:5e:63: 4f:d1:9e:7f:81:dc:fc:1f:f3:52:a5:cb:63:97:3a:29:6d:27: 11:64:a0:92:94:f8:9d:45:fd:d9:38:f9:bd:40:ff:76:62:95: b2:60:39:1f:01:4d:38:c5:d0:e8:d6:f4:74:31:88:ca:3e:49: 78:2e:34:6a:49:4f:ed:70:22:67:3c:c6:c9:8b:0a:be:6d:6a: 57:d9:62:68:10:15:c1:fe:9d:79:2a:7e:89:c6:32:34:cd:ed: 92:9d:22:38:f0:96:7c:8a:de:1f:bf:1a:e1:3a:8d:15:a0:b3: 48:b8:2b:8d:5c:93:b0:53:5e:d1:76:5d:56:60:98:9d:6a:ae: e3:7b:a9:35:f0:07:60:3c:0d:0a:87:cc:b5:5e:d7:d4:1f:77: d3:69:5c:38
  4. 导入根 CA 证书以将其安装在 CA 上。

    注意

    如果您使用的是 1.6.3 或更高 AWS CLI 版本,请在指定所需的输入文件fileb://时使用前缀。这样可以确保正确 AWS 私有 CA 解析 Base64 编码的数据。

    $ aws acm-pca import-certificate-authority-certificate \ --certificate-authority-arn arn:aws:acm-pca:region:account:certificate-authority/CA_ID \ --certificate file://cert.pem

检查 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

状态现在显示为“活动”。

{ "CertificateAuthority": { "Arn": "arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566", "CreatedAt": "2021-03-05T14:24:12.867000-08:00", "LastStateChangeAt": "2021-03-08T12:37:14.235000-08:00", "Type": "ROOT", "Serial": "serial_number", "Status": "ACTIVE", "NotBefore": "2021-03-08T07:46:27-08:00", "NotAfter": "2022-03-08T08:46:27-08:00", "CertificateAuthorityConfiguration": { "KeyAlgorithm": "RSA_2048", "SigningAlgorithm": "SHA256WITHRSA", "Subject": { "Country": "US", "Organization": "Example Corp", "OrganizationalUnit": "Sales", "State": "WA", "CommonName": "www.example.com", "Locality": "Seattle" } }, "RevocationConfiguration": { "CrlConfiguration": { "Enabled": true, "ExpirationInDays": 7, "CustomCname": "alternative.example.com", "S3BucketName": "DOC-EXAMPLE-BUCKET1" }, "OcspConfiguration": { "Enabled": false } } } }

安装由托管的从属 CA 证书 AWS 私有 CA

您可以使用 AWS Management Console 为 AWS 私有 CA 托管的从属 CA 创建和安装证书。

为 AWS 私有 CA 托管的从属 CA 创建和安装证书
  1. (可选)如果您尚未进入 CA 的详细信息页面,请从 https://console.aws.amazon.com/acm-pca/home 打开 AWS 私有 CA 控制台。在私有证书颁发机构页面上,选择状态为待处理证书活动的从属 CA。

  2. 选择操作安装 CA 证书以打开安装从属 CA 证书页面。

  3. 在 “安装从属 CA 证书” 页面的 “选择 CA 类型” 下,选择AWS Private CA安装由管理的证书 AWS 私有 CA。

  4. 选择父 CA 下,从父私有 CA 列表中选择 CA。此列表筛选为显示满足以下条件的 CA:

    • 您拥有使用该 CA 的权限。

    • 该 CA 不会自签名。

    • 该 CA 处于 ACTIVE 状态。

    • CA 模式为 GENERAL_PURPOSE

  5. 指定从属 CA 证书参数下,指定以下证书参数:

    • 有效期 – 指定 CA 证书的到期日期和时间。

    • 签名算法 – 指定根 CA 颁发新证书时使用的签名算法。选项包括:

      • SHA256 RSA

      • SHA384 RSA

      • SHA512 RSA

    • 路径长度 – 从属 CA 在签署新证书时可以添加的信任层数。路径长度为零(默认值)表示只能创建终端实体证书,不能创建 CA 证书。路径长度为一或更多表示从属 CA 可以颁发证书以创建附属于它的其他 CA。

    • 模板 ARN – 显示此 CA 证书配置模板的 ARN。如果您更改指定的路径长度,模板也会更改。如果您使用 CLI 颁发证书命令或 API IssueCertificate操作创建证书,则必须手动指定 ARN。有关可用 CA 证书模板的信息,请参阅了解证书模板

  6. 检查您的设置是否正确,然后选择 “确认并安装”。 AWS 私有 CA 导出 CSR,使用从属 CA 证书模板生成证书,并使用选定的父 CA 签署证书。 AWS 私有 CA 然后导入已签名的从属 CA 证书。

  7. CA 的详细信息页面顶部显示安装状态(成功或失败)。如果安装成功,新完成的从属 CA 将在常规窗格中显示为活动

安装由外部父 CA 签名的从属 CA 证书

创建 CA 的过程(控制台)创建 CA 的过程(CLI) 中所述创建从属私有 CA 后,您可以选择通过安装由外部签名颁发机构签名的 CA 证书来激活它。使用外部 CA 签署从属 CA 证书需要您先将外部信任服务提供商设置为签名颁发机构,或者安排使用第三方提供商。

注意

创建或获取外部信任服务提供商的过程不在本指南的讨论范围内。

在创建从属 CA 并拥有外部签名颁发机构访问权限之后,请完成以下任务:

  1. 从获取证书签名请求 (CSR) AWS 私有 CA。

  2. 将 CSR 提交给您的外部签名颁发机构,并获取签名的 CA 证书以及所有链证书。

  3. 将 CA 证书和链接导入 AWS 私有 CA 以激活您的从属 CA。

有关详细步骤,请参阅 外部签名的私有 CA 证书