

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 具有 PKCS \$111 程式庫的憑證儲存
<a name="pkcs11-certificate-storage"></a>

 AWS CloudHSM PKCS \$111 程式庫支援將公有金鑰憑證儲存為 hsm2m.medium 叢集上的「公有物件」（如 PKCS \$111 2.40 中所定義）。此功能允許公有和私有 PKCS \$111 工作階段建立、擷取、修改和刪除公有金鑰憑證。

 若要搭配 PKCS \$111 程式庫使用憑證儲存，您需要在用戶端組態中啟用它。啟用後，您可以從 PKCS \$111 應用程式管理憑證物件。同時套用到憑證和金鑰物件的操作，例如 [C\$1FindObjects](http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html#_Toc323205461)，將會傳回金鑰和憑證儲存的結果。

**Topics**
+ [啟用憑證儲存](pkcs11-certificate-storage-configuration.md)
+ [憑證儲存 API](pkcs11-certificate-storage-api.md)
+ [憑證屬性](pkcs11-certificate-storage-attributes.md)
+ [憑證儲存體稽核日誌](pkcs11-certificate-storage-audit-logs.md)

# 啟用憑證儲存
<a name="pkcs11-certificate-storage-configuration"></a>

 您可以使用 PKCS \$111 程式庫組態工具，在 hsm2m.medium 叢集上啟用憑證儲存。此功能適用於 SDK 5.13 版和更新版本。如需支援憑證物件類型的操作清單，請參閱[憑證儲存 API 操作](pkcs11-certificate-storage-api.md)。

 若要啟用憑證儲存，請依照下列步驟操作您的作業系統：

------
#### [ Linux ]
+ 

****啟用憑證儲存****  
執行以下命令：

  ```
  $ sudo /opt/cloudhsm/bin/configure-pkcs11 --enable-certificate-storage
  ```

------
#### [ Windows ]
+ 

****啟用憑證儲存****  
開啟命令提示字元並執行下列命令：

  ```
  PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" --enable-certificate-storage
  ```

------

# 憑證儲存 API 操作
<a name="pkcs11-certificate-storage-api"></a>

 下列 PKCS \$111 操作支援憑證物件類型 (`CKO_CERTIFICATE`)：

## 一般憑證操作
<a name="general-certificate-operations"></a>

**`C_CreateObject`**  
建立新的憑證物件。

**`C_DestroyObject`**  
刪除現有的憑證物件。

**`C_GetAttributeValue`**  
取得憑證物件的一或多個屬性的值。

**`C_SetAttributeValue`**  
更新憑證物件的一或多個屬性的值。

## 憑證物件搜尋操作
<a name="certificate-object-search-operations"></a>

**`C_FindObjectsInit`**  
開始搜尋憑證物件。

**`C_FindObjects`**  
繼續搜尋憑證物件。

**`C_FindObjectsFinal`**  
結束憑證物件的搜尋。

# 憑證儲存屬性
<a name="pkcs11-certificate-storage-attributes"></a>

 下表列出支援的憑證物件屬性及其值：


| 屬性 | 預設值 | Description | 
| --- | --- | --- | 
| `CKA_CLASS` | 必要 | 必須為 `CKO_CERTIFICATE`。 | 
| `CKA_TOKEN` | True |  必須為 `True`。 | 
| `CKA_MODIFIABLE` | True | 必須為 `True`。 | 
| `CKA_PRIVATE` | False | 必須為 `False`。 | 
| `CKA_LABEL` | 空白 | 限制 127 個字元。 | 
| `CKA_COPYABLE` | False | 必須為 `False`。 | 
| `CKA_DESTROYABLE` | True | 必須為 `True`。 | 
| `CKA_CERTIFICATE_TYPE` | 必要 | 必須為 `CKC_X_509`。 | 
| `CKA_TRUSTED` | False | 必須為 `False`。 | 
| `CKA_CERTIFICATE_CATEGORY` | `CK_CERTIFICATE_CATEGORY_UNSPECIFIED` | 必須為 `CK_CERTIFICATE_CATEGORY_UNSPECIFIED`。 | 
| `CKA_CHECK_VALUE` | 衍生自 `CKA_VALUE` | 根據 自動設定`CKA_VALUE`。 | 
| `CKA_START_DATE` | 空白 | 憑證 'not before' date。 | 
| `CKA_END_DATE` | 空白 | 憑證 'not after' date。 | 
| `CKA_PUBLIC_KEY_INFO` | 空白 | 大小上限為 16 KB。 | 
| `CKA_SUBJECT` | 必要 | 憑證主體。 | 
| `CKA_ID` | 空白 | 大小上限為 128 個位元組。不強制執行唯一性。 | 
| `CKA_ISSUER` | 空白 | 憑證發行者。 | 
| `CKA_SERIAL_NUMBER` | 空白 | 憑證序號。 | 
| `CKA_VALUE` | 必要 | 大小上限為 32 KB。 | 

# 憑證儲存體稽核日誌
<a name="pkcs11-certificate-storage-audit-logs"></a>

 AWS CloudHSM 會寫入憑證儲存操作的稽核日誌，以將資料修改為叢集 Amazon CloudWatch CloudWatch Events 日誌串流。此日誌串流會針對叢集命名，而不是針對叢集內的特定 HSM。

 如需有關在 CloudWatch 中存取稽核日誌的資訊，請參閱 [使用 Amazon CloudWatch Logs 和 AWS CloudHSM 稽核日誌](get-hsm-audit-logs-using-cloudwatch.md)。

## 日誌項目欄位
<a name="pkcs11-certificate-storage-audit-logs-fields"></a>

`object_handle`  
憑證物件的唯一識別符。

`op_code`  
執行或嘗試的操作。可能的值如下：  
+ `CreateObject`
+ `DestroyObject`
+ `SetAttributeValues`

`response`  
`OK` 如果操作成功，或下列其中一個錯誤類型：  
+ `DuplicateAttribute`
+ `InvalidAttributeValue`
+ `ObjectNotFound`
+ `MaxObjectsReached`
+ `InternalFailure`

`attributes`  
已修改屬性，如果有的話。

`timestamp`  
操作發生的時間，以 Unix epoch 後的毫秒為單位。

## 稽核日誌範例
<a name="pkcs11-certificate-storage-audit-logs-examples"></a>

### CreateObject 範例
<a name="pkcs11-certificate-storage-audit-logs-examples-create"></a>

```
{
    "object_handle": 463180677312929947,
    "op_code": "CreateObject",
    "response": "OK",
    "attributes": null,
    "timestamp": 1725482483671
}
```

### DestroyObject 範例
<a name="pkcs11-certificate-storage-audit-logs-examples-delete"></a>

```
{
    "object_handle": 463180677312929947,
    "op_code": "DestroyObject",
    "response": "OK",
    "attributes": null,
    "timestamp": 1725482484559
}
```

### SetAttributeValues 範例
<a name="pkcs11-certificate-storage-audit-logs-examples-set"></a>

```
{
    "object_handle": 463180678453346687,
    "op_code": "SetAttributeValues",
    "response": "OK",
    "attributes": [
        "Label"
    ],
    "timestamp": 1725482488004
}
```

### 不成功的 CreateObject 範例
<a name="pkcs11-certificate-storage-audit-logs-examples-error"></a>

```
{
    "object_handle": null,
    "op_code": "CreateObject",
    "response": "MaxObjectsReached",
    "attributes": null,
    "timestamp": 1726084937125
}
```