

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

# プライベートエンドエンティティ証明書を発行する
<a name="PcaIssueCert"></a>

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


****  

|  機能  |  ACM  |  AWS Private CA  | 
| --- | --- | --- | 
|  エンドエンティティ証明書を発行する  |  ✓ ([RequestCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API_RequestCertificate.html) または コンソールを使用)  |  ✓ ( [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) を使用)  | 
|  ロードバランサーおよびインターネット向け AWS サービスとの関連付け  |  ✓  |  サポートされていません  | 
| マネージド証明書の更新 | ✓ | ACM により、間接的に[サポートされています](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html) | 
|  コンソールのサポート  |  ✓  |  サポートされていません  | 
|  API サポート  |  ✓  |  ✓  | 
|  CLI サポート  |  ✓  |  ✓  | 

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

ACM 証明書はパブリック信頼に基づいて設計されていますが、 AWS Private CA はプライベート PKI のニーズに対応します。したがって、ACM で許可されていない方法で AWS Private CA API と CLI を使用して証明書を設定できます。これには以下が含まれます。
+ 任意の件名を持つ証明書の作成。
+ [サポートされている任意のプライベートキーアルゴリズムとキー長](https://docs.aws.amazon.com/privateca/latest/userguide/supported-algorithms.html) を使用する。
+ [サポートされている署名アルゴリズム](https://docs.aws.amazon.com/privateca/latest/userguide/supported-algorithms.html) のいずれかを使用する。
+ プライベート [CA](PcaCreateCa.html) とプライベート[証明書](PcaIssueCert.html)の有効期間の指定。

を使用してプライベート TLS 証明書を作成したら AWS Private CA、それを ACM に[インポート](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)して、サポートされている AWS サービスで使用できます。

**注記**  
以下の手順で、**issue-certificate** コマンド、または [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) API アクションで作成された証明書は、直接エクスポートして AWSの外部で使用することはできません。ただし、プライベート CA を使用して ACM を通じて発行された証明書に署名することができ、それらの証明書はシークレットキーとともにエクスポートできます。詳細については、「ACM ユーザーガイド」の「[プライベート証明書のリクエスト](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html)」と「[プライベート証明書のエクスポート](https://docs.aws.amazon.com/acm/latest/userguide/export-private.html)」を参照してください。

## 標準証明書を発行する (AWS CLI)
<a name="IssueCertCli"></a>

 AWS Private CA CLI コマンド [issue-certificate](https://docs.aws.amazon.com/cli/latest/reference/acm-pca/issue-certificate.html) または API アクション [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) を使用して、エンドエンティティ証明書をリクエストできます。このコマンドでは、証明書の発行に使用するプライベート CA の Amazon リソースネーム (ARN) が必要です。また、[OpenSSL](https://www.openssl.org/) などのプログラムを使用して、証明書署名リクエスト (CSR) を生成する必要があります。

 AWS Private CA API または を使用してプライベート証明書 AWS CLI を発行する場合、証明書はアンマネージド型です。つまり、ACM コンソール、ACM CLI、または ACM API を使用してプライベート証明書を表示またはエクスポートすることはできず、証明書は自動的に更新されません。ただし、PCA の [get-certificate](https://docs.aws.amazon.com/cli/latest/reference/acm-pca/get-certificate.html) コマンドを使用して証明書の詳細を取得することができます。CA を所有している場合は [監査レポート](PcaAuditReport.md) を作成できます。

**証明書を作成する際の考慮事項**
+ [RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280) に準拠している場合、ドメイン名 (技術的には Common Name) の長さは、ピリオドを含む 64 オクテット (文字) を超えることはできません。より長いドメイン名を追加するには、[サブジェクト代替名] フィールドにドメイン名を指定します。このフィールドでは、最大 253 オクテットの名前がサポートされます。
+  AWS CLI バージョン 1.6.3 以降を使用している場合は、CSRs などの base64 エンコードされた入力ファイルを指定する`fileb://`ときに プレフィックスを使用します。これにより、 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 を返します。ただし、証明書の処理は非同期で行われるため、失敗する可能性があります。この場合、新しい ARN を使用する **get-certificate** コマンドも失敗します。

## APIPassthrough テンプレートを使用して、カスタムサブジェクト名で証明書を発行します。
<a name="custom-subject-1"></a>

この例では、カスタマイズされたサブジェクト名要素を含む証明書が発行されます。[標準証明書を発行する (AWS CLI)](#IssueCertCli) にあるような CSR の指定に加えて、**issue-certificate** コマンドには、APIPassthrough テンプレートの ARN と、カスタム属性とそのオブジェクト識別子 (OID) を指定する JSON 設定ファイルの 2 つの引数を追加で渡します。`StandardAttributes` と `CustomAttributes` を組み合わせて使用することはできませんが、標準 OID を `CustomAttributes` の一部として渡すことはできます。デフォルトのサブジェクト名 OID を以下の表に示します ([RFC 4519](https://www.rfc-editor.org/rfc/rfc4519) および [グローバル OID リファレンスデータベース](https://oidref.com) からの情報)。


|  サブジェクト名  |  略語  |  オブジェクト 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
```

OpenSSL を使用して、証明書の内容を検査できます。

```
$ openssl x509 -in cert.pem -text -noout
```

**注記**  
発行する各証明書にカスタム属性を渡すプライベート CA を作成することもできます。

## APIPassthrough テンプレートを使用して、カスタム拡張付きの証明書を発行します。
<a name="custom-subject-2"></a>

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

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

OpenSSL を使用して、証明書の内容を検査できます。

```
$ openssl x509 -in cert.pem -text -noout
```