

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 클라이언트 SDK 3을 사용하여 AWS CloudHSM keytool과 함께 키 스토어 사용
<a name="using_keystore_with_keytool"></a>

[ Keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html)은 Linux 시스템에서 공통 키 및 인증서 작업을 위한 널리 사용되는 명령줄 유틸리티입니다. Keytool에 대한 전체 자습서는 AWS CloudHSM 설명서의 범위를 벗어납니다. 이 문서에서는를 키 스토어를 통해 신뢰의 루트 AWS CloudHSM 로 사용할 때 다양한 AWS CloudHSM 키 도구 함수와 함께 사용해야 하는 특정 파라미터에 대해 설명합니다.

키 스토어와 함께 AWS CloudHSM keytool을 사용하는 경우 모든 keytool 명령에 다음 인수를 지정합니다.

```
-storetype CLOUDHSM \
		-J-classpath '-J/opt/cloudhsm/java/*' \
		-J-Djava.library.path=/opt/cloudhsm/lib
```

키 스토어를 사용하여 새 AWS CloudHSM 키 스토어 파일을 생성하려면 섹션을 참조하세요[AWS CloudHSM 클라이언트 SDK 3용 AWS CloudHSM KeyStore 사용](alternative-keystore.md#using_cloudhsm_keystore). 기존 키 스토어를 사용하려면 keytool에 대한 keystore 인수를 사용하여 이름(경로 포함)을 지정합니다. keytool 명령에서 존재하지 않는 키 스토어 파일을 지정하면 AWS CloudHSM 키 스토어가 새 키 스토어 파일을 생성합니다.

# keytool을 사용하여 새 AWS CloudHSM 키 생성
<a name="create_key_keytool"></a>

keytool을 사용하여 AWS CloudHSM JCE SDK에서 지원하는 모든 유형의 키를 생성할 수 있습니다. Java 라이브러리의 [ 지원되는 키](java-lib-supported.md#java-keys) 문서에서 키 및 길이의 전체 목록을 참조하십시오.

**중요**  
keytool을 통해 생성된 키는 소프트웨어에서 생성된 다음 추출 가능한 영구 키 AWS CloudHSM 로 로 가져옵니다.

하드웨어 보안 모듈(HSM)에서 직접 추출할 수 없는 키를 생성한 다음 keytool 또는 Jarsigner와 함께 사용하는 방법에 대한 지침은 [AWS CloudHSM 키 스토어에 기존 키 등록의 코드 샘플에 나와 있습니다](register-pre-existing-keys-with-keystore.md). Keytool 외부에서 내보낼 수 없는 키를 생성한 다음 해당 인증서를 키 스토어로 가져오는 것이 좋습니다. keytool 및 jarsigner를 통해 추출 가능한 RSA 또는 EC 키를 사용하는 경우 공급자는에서 키를 내보낸 AWS CloudHSM 다음 서명 작업에 로컬로 키를 사용합니다.

CloudHSM 클러스터에 연결된 클라이언트 인스턴스가 여러 개 있는 경우, 한 클라이언트 인스턴스의 키 스토어에서 인증서를 가져오더라도 다른 클라이언트 인스턴스에서 자동으로 인증서를 사용할 수 없다는 점을 알아두십시오. 각 클라이언트 인스턴스에서 키 및 연결된 인증서를 등록하려면 [Keytool을 사용하여 CSR 생성](generate_csr_using_keytool.md)에 설명된 대로 Java 애플리케이션을 실행해야 합니다. 또는, 한 클라이언트에서 필요한 사항을 변경하고 결과 키 스토어 파일을 다른 모든 클라이언트 인스턴스에 복사할 수 있습니다.

**예제 1:** 대칭 AES-256 키를 생성하고 작업 디렉터리에서 이름이 "example\$1keystore.store"인 키 저장소 파일에 저장하려면. *<secret label>*을 고유한 레이블로 바꿉니다.

```
keytool -genseckey -alias <secret label> -keyalg aes \
		-keysize 256 -keystore example_keystore.store \
		-storetype CloudHSM -J-classpath '-J/opt/cloudhsm/java/*' \
		-J-Djava.library.path=/opt/cloudhsm/lib/
```

**예제 2:** RSA 2048 키 페어를 생성하고 작업 디렉터리에서 이름이 "example\$1keystore.store"인 키 저장소 파일에 저장하려면. *<RSA key pair label>*을 고유한 레이블로 바꿉니다.

```
keytool -genkeypair -alias <RSA key pair label> \
        -keyalg rsa -keysize 2048 \
        -sigalg sha512withrsa \
        -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

**예제 3:** p256 ED 키를 생성하고 작업 디렉터리에서 이름이 "example\$1keystore.store"인 키 저장소 파일에 저장하려면. *<ec key pair label>*을 고유한 레이블로 바꿉니다.

```
keytool -genkeypair -alias <ec key pair label> \
        -keyalg ec -keysize 256 \
        -sigalg SHA512withECDSA \
        -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

Java 라이브러리에서 [지원되는 서명 알고리즘](java-lib-supported.md#java-sign-verify)의 목록을 찾을 수 있습니다.

# keytool을 사용하여 AWS CloudHSM 키 삭제
<a name="delete_key_using_keytool"></a>

 AWS CloudHSM 키 스토어는 키 삭제를 지원하지 않습니다. 키를 삭제하려면의 명령줄 도구인 AWS CloudHSM의 `deleteKey` 함수를 사용해야 합니다[KMU를 사용하여 AWS CloudHSM 키 삭제](key_mgmt_util-deleteKey.md).

# keytool을 사용하여 AWS CloudHSM CSR 생성
<a name="generate_csr_using_keytool"></a>

[AWS CloudHSM 클라이언트 SDK 5용 OpenSSL Dynamic Engine](openssl-library.md)를 사용하는 경우 가장 유연하게 인증서 서명 요청(CSR)을 생성할 수 있습니다. 다음 명령은 keytool을 사용하여 별칭이 있는 키 페어, `example-key-pair`에 대한 CSR을 생성합니다.

```
keytool -certreq -alias <key pair label> \
        -file example_csr.csr \
        -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

**참고**  
keytool의 키 페어를 사용하려면 해당 키 페어의 지정된 키 스토어 파일에 항목이 있어야 합니다. keytool 외부에서 생성된 키 페어를 사용하려면 키 및 인증서 메타데이터를 키 스토어로 가져와야 합니다. 키 스토어 데이터 가져오기에 대한 지침은 [Keytool을 사용하여 AWS CloudHSM 키 스토어로 중간 및 루트 인증서 가져오기를 참조하세요](import_cert_using_keytool.md).

# keytool을 사용하여 중간 및 루트 인증서를 AWS CloudHSM 키 스토어로 가져오기
<a name="import_cert_using_keytool"></a>

CA 인증서를 로 가져오려면 새로 가져온 인증서에서 전체 인증서 체인의 확인을 활성화 AWS CloudHSM해야 합니다. 다음 명령은 예시를 나타냅니다.

```
keytool -import -trustcacerts -alias rootCAcert \
        -file rootCAcert.cert -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

여러 클라이언트 인스턴스를 AWS CloudHSM 클러스터에 연결하는 경우 한 클라이언트 인스턴스의 키 스토어에서 인증서를 가져오면 다른 클라이언트 인스턴스에서 인증서를 자동으로 사용할 수 없게 되지 않습니다. 각 클라이언트 인스턴스에서 인증서를 가져와야 합니다.

# keytool을 사용하여 AWS CloudHSM 키 스토어에서 인증서 삭제
<a name="delete_cert_using_keytool"></a>

다음 명령은 Java keytool 키 스토어에서 AWS CloudHSM 인증서를 삭제하는 방법의 예를 보여줍니다.

```
keytool -delete -alias mydomain -keystore \
        -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

여러 클라이언트 인스턴스를 AWS CloudHSM 클러스터에 연결하는 경우 한 클라이언트 인스턴스의 키 스토어에서 인증서를 삭제해도 다른 클라이언트 인스턴스에서 인증서가 자동으로 제거되지 않습니다. 각 클라이언트 인스턴스에서 인증서를 삭제해야 합니다.

# AWS CloudHSM keytool을 사용하여 키 스토어로 작업 인증서 가져오기
<a name="import_working_cert_using_keytool"></a>

인증서 서명 요청(CSR)이 서명되면, 이를 AWS CloudHSM 키 스토어로 가져와서 적절한 키 페어와 연결할 수 있습니다. 다음 명령은 예시를 제공합니다.

```
keytool -importcert -noprompt -alias <key pair label> \
        -file example_certificate.crt \
        -keystore example_keystore.store
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```

별칭은 키 스토어에 연결된 인증서가 있는 키 페어여야 합니다. 키가 keytool 외부에서 생성되거나 다른 클라이언트 인스턴스에서 생성된 경우, 먼저 키 및 인증서 메타데이터를 키 스토어로 가져오기 해야 합니다. 인증서 메타데이터 가져오기에 대한 지침은 [AWS CloudHSM 키 스토어에 기존 키 등록의 코드 샘플을 참조하세요](register-pre-existing-keys-with-keystore.md).

인증서 체인은 검증 가능해야 합니다. 인증서를 검증할 수 없는 경우, 체인을 검증할 수 있도록 서명(인증 기관) 인증서를 키 스토어로 가져와야 할 수 있습니다.

# keytool을 AWS CloudHSM 사용하여에서 인증서 내보내기
<a name="export_cert_using_keytool"></a>

다음 예에서는 이진수 X.509 형식으로 인증서를 생성합니다. 사람이 읽을 수 있는 인증서를 내보내려면 `-exportcert` 명령`-rfc`에를 AWS CloudHSM추가합니다.

```
keytool -exportcert -alias <key pair label> \
        -file example_exported_certificate.crt \
        -keystore example_keystore.store \
        -storetype CLOUDHSM \
        -J-classpath '-J/opt/cloudhsm/java/*' \
        -J-Djava.library.path=/opt/cloudhsm/lib/
```