プライベートエンドエンティティ証明書を発行する - AWS Private Certificate Authority

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

プライベートエンドエンティティ証明書を発行する

プライベート CA を配置すると、 AWS Certificate Manager (ACM) または からプライベートエンドエンティティ証明書をリクエストできます AWS Private CA。次の表では、この 2 つのサービスの機能を比較します。

機能

ACM

AWS Private CA

エンドエンティティ証明書を発行する

✓ (RequestCertificate またはコンソールを使用)

✓ ( を使用IssueCertificate

ロードバランサーおよびインターネット向け AWS サービスとの関連付け

サポートされていません

マネージド証明書の更新 を通じて間接的にサポートされる ACM

コンソールのサポート

サポートされていません

API サポート

CLI サポート

が証明書 AWS Private CA を作成すると、証明書のタイプとパスの長さを指定するテンプレートに従います。証明書を作成する APIまたは CLIステートメントにテンプレートARNが指定されていない場合、EndEntityCertificate/V1 テンプレートはデフォルトで適用されます。使用可能な証明書テンプレートの詳細については、「AWS Private CA 証明書テンプレートを使用する」を参照してください。

ACM 証明書はパブリック信頼に基づいて設計されていますが、 AWS Private CA はプライベート のニーズに対応しますPKI。したがって、 および AWS Private CA APIを使用して、 で許可されていないCLI方法で証明書を設定できますACM。これには以下が含まれます。

を使用してプライベートTLS証明書を作成したら AWS Private CA、 にインポートACMして、サポートされている AWS サービスで使用できます。

注記

以下の手順、 issue-certificate コマンド、または IssueCertificateAPIアクションを使用して作成された証明書は、 の外部で使用するために直接エクスポートすることはできません AWS。ただし、プライベート CA を使用して を通じて発行された証明書に署名することはできACM、それらの証明書はシークレットキーとともにエクスポートできます。詳細については、 ACM ユーザーガイド「プライベート証明書のリクエスト」および「プライベート証明書のエクスポート」を参照してください。

標準証明書を発行する (AWS CLI)

コマンド issue-certificate または APIアクションを使用して AWS Private CA CLI、エンドエンティティ証明書をIssueCertificateリクエストできます。このコマンドには、証明書の発行に使用するプライベート CA の Amazon リソースネーム (ARN) が必要です。また、OpenSSL などのプログラムを使用して証明書署名リクエスト (CSR) を生成する必要があります。

または を使用して AWS Private CA APIプライベート証明書 AWS CLI を発行する場合、証明書は管理対象外になります。つまり、ACMコンソール、CLI、または ACM を使用して証明書ACMAPIを表示またはエクスポートすることはできず、証明書は自動的に更新されません。ただし、PCAget-certificate コマンドを使用して証明書の詳細を取得できます。CA を所有している場合は、監査レポート を作成できます。

証明書を作成する際の考慮事項

  • RFC 5280 に準拠して、指定したドメイン名の長さ (技術的には共通名) は、ピリオドを含めて 64 オクテット (文字) を超えることはできません。より長いドメイン名を追加するには、[サブジェクト代替名] フィールドにドメイン名を指定します。このフィールドでは、最大 253 オクテットの名前がサポートされます。

  • AWS CLI バージョン 1.6.3 以降を使用している場合は、 などの base64 でエンコードされた入力ファイルを指定するfileb://ときにプレフィックスを使用しますCSRs。これにより、 はデータを正しく AWS Private CA 解析します。

次の OpenSSL コマンドは、証明書の CSRとプライベートキーを生成します。

$ openssl req -out csr.pem -new -newkey rsa:2048 -nodes -keyout private-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" }
注記

AWS Private CA issue-certificate コマンドを受信すると、 はすぐにシリアル番号ARNの を返します。ただし、証明書の処理は非同期で行われるため、失敗する可能性があります。この場合、新しい を使用するget-certificateコマンドARNも失敗します。

APIPassthrough テンプレートを使用してカスタムサブジェクト名で証明書を発行する

この例では、カスタマイズされたサブジェクト名要素を含む証明書が発行されます。の CSRのような を提供するだけでなく標準証明書を発行する (AWS CLI)、APIPassthroughテンプレートARNの と、カスタム属性とそのオブジェクト識別子 () を指定するJSON設定ファイルという 2 つの引数を issue-certificate コマンドに渡すことができますOIDs。と StandardAttributes を併用することはできませんCustomAttributes。ただし、 OIDs の一部として標準を渡すことができますCustomAttributes。デフォルトのサブジェクト名OIDsは、次の表 (RFC4519 およびグローバルOIDリファレンスデータベース からの情報) に記載されています。

サブジェクト名

略語

オブジェクト 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

I

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 テンプレートを使用してカスタム拡張機能で証明書を発行する

この例では、カスタマイズされた拡張を含む証明書が発行されます。そのためには、APIPassthroughテンプレートARNの と、カスタム拡張機能を指定するJSON設定ファイルなどの 3 CSR つの引数を issue-certificate コマンドに渡す必要があります標準証明書を発行する (AWS CLI)

サンプル設定ファイル 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