

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Use o armazenamento de AWS CloudHSM chaves com o keytool usando o Client SDK 3
<a name="using_keystore_with_keytool"></a>

[ Keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html) é um utilitário de linha de comando popular para tarefas comuns de chave e certificado em sistemas Linux. Um tutorial completo sobre o keytool está fora do escopo da documentação do AWS CloudHSM . Este artigo explica os parâmetros específicos que você deve usar com várias funções de ferramentas-chave ao utilizá-las AWS CloudHSM como raiz de confiança por meio do armazenamento de AWS CloudHSM chaves.

Ao usar o keytool com o armazenamento de AWS CloudHSM chaves, especifique os seguintes argumentos para qualquer comando keytool:

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

Se você quiser criar um novo arquivo de armazenamento de chaves usando o armazenamento de AWS CloudHSM chaves, consulte[Use o AWS CloudHSM KeyStore for AWS CloudHSM Client SDK 3](alternative-keystore.md#using_cloudhsm_keystore). Para usar um armazenamento de chaves existente, especifique seu nome (incluindo o caminho) usando o argumento keystore para keytool. Se você especificar um arquivo de armazenamento de chaves inexistente em um comando keytool, o armazenamento de AWS CloudHSM chaves criará um novo arquivo de armazenamento de chaves.

# Crie novas AWS CloudHSM chaves com o keytool
<a name="create_key_keytool"></a>

Você pode usar o keytool para gerar qualquer tipo de chave compatível com o SDK do AWS CloudHSM JCE. Veja uma lista completa de chaves e comprimentos no artigo [ Chaves Suportadas](java-lib-supported.md#java-keys) na Biblioteca Java.

**Importante**  
Uma chave gerada por meio do keytool é gerada no software e depois importada AWS CloudHSM como uma chave persistente e extraível.

As instruções para criar chaves não extraíveis diretamente no módulo de segurança de hardware (HSM) e depois usá-las com o keytool ou o Jarsigner são mostradas na amostra de código em [Registrando](register-pre-existing-keys-with-keystore.md) chaves pré-existentes no Key Store. AWS CloudHSM É altamente recomendável gerar chaves não exportáveis fora do keytool e importar certificados correspondentes para o repositório de chaves. Se você usar chaves RSA ou EC extraíveis por meio de keytool e jarsigner, os provedores exportarão as chaves do e, em seguida, usarão a chave AWS CloudHSM localmente para operações de assinatura.

Se você tiver várias instâncias de cliente conectadas ao cluster do CloudHSM, esteja ciente de que importar um certificado no repositório de chaves de uma instância de cliente não disponibilizará automaticamente os certificados em outras instâncias de cliente. Para registrar a chave e os certificados associados em cada instância do cliente, você precisa executar um aplicativo Java conforme descrito em [Gerar um CSR usando Keytool](generate_csr_using_keytool.md). Como alternativa, você pode fazer as alterações necessárias em um cliente e copiar o arquivo repositório de chaves resultante para todas as outras instâncias de cliente.

**Exemplo 1: **para gerar uma chave AES-256 simétrica e salvá-la em um arquivo armazenamento de chave chamado “example\$1keystore.store”, no diretório de trabalho. *<secret label>*Substitua por uma etiqueta exclusiva.

```
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/
```

**Exemplo 2: **para gerar um par de chaves RSA 2048 e salvá-lo em um arquivo armazenamento de chave chamado “example\$1keystore.store”, no diretório de trabalho. *<RSA key pair label>*Substitua por uma etiqueta exclusiva.

```
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/
```

**Exemplo 3: **para gerar um par de chaves p256 ED e salvá-lo em um arquivo armazenamento de chave chamado “example\$1keystore.store”, no diretório de trabalho. *<ec key pair label>*Substitua por uma etiqueta exclusiva.

```
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/
```

Você pode encontrar uma lista de [algoritmos de assinatura suportados](java-lib-supported.md#java-sign-verify) na biblioteca Java.

# Exclua uma AWS CloudHSM chave usando o keytool
<a name="delete_key_using_keytool"></a>

O armazenamento de AWS CloudHSM chaves não suporta a exclusão de chaves. Para excluir a chave, você deve usar a `deleteKey` função AWS CloudHSM da ferramenta de linha de comando,[Excluir uma AWS CloudHSM chave usando KMU](key_mgmt_util-deleteKey.md).

# Gere uma AWS CloudHSM CSR usando o keytool
<a name="generate_csr_using_keytool"></a>

Você recebe a maior flexibilidade na geração de um pedido de assinatura de certificado (CSR) se você usar o [Mecanismo AWS CloudHSM dinâmico OpenSSL para cliente SDK 5](openssl-library.md). O comando a seguir usa o keytool para gerar um CSR para um par de chaves com o alias `example-key-pair`.

```
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/
```

**nota**  
Para usar um par de chaves da keytool, esse par de chaves deve ter uma entrada no arquivo de repositório de chaves especificado. Se você quiser usar um par de chaves que foi gerado fora do keytool, você deve importar os metadados de chave e certificado para o repositório de chaves. Para obter instruções sobre como importar os dados do armazenamento de chaves, consulte [Importação de certificados intermediários e raiz para o AWS CloudHSM Key Store](import_cert_using_keytool.md) usando o Keytool.

# Use o keytool para importar certificados intermediários e raiz para o armazenamento de AWS CloudHSM chaves
<a name="import_cert_using_keytool"></a>

Para importar um certificado CA para AWS CloudHSM, você deve habilitar a verificação de uma cadeia de certificados completa em um certificado recém-importado. O seguinte comando mostra um exemplo. 

```
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/
```

Se você conectar várias instâncias do cliente ao seu AWS CloudHSM cluster, importar um certificado no armazenamento de chaves de uma instância do cliente não disponibilizará automaticamente o certificado em outras instâncias do cliente. Você deve importar o certificado em cada instância do cliente.

# Use o keytool para excluir certificados do armazenamento de AWS CloudHSM chaves
<a name="delete_cert_using_keytool"></a>

O comando a seguir mostra um exemplo de como excluir um AWS CloudHSM certificado de um armazenamento de chaves Java keytool. 

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

Se você conectar várias instâncias do cliente ao seu AWS CloudHSM cluster, a exclusão de um certificado no armazenamento de chaves de uma instância do cliente não removerá automaticamente o certificado de outras instâncias do cliente. Você deve excluir o certificado em cada instância de cliente.

# Importe um certificado funcional para o armazenamento de AWS CloudHSM chaves usando o keytool
<a name="import_working_cert_using_keytool"></a>

Depois que uma solicitação de assinatura de certificado (CSR) for assinada, você poderá importá-la para o repositório de chaves do AWS CloudHSM e associá-la ao par de chaves apropriado. O comando a seguir fornece um exemplo. 

```
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/
```

O alias deve ser um par de chaves com um certificado associado no repositório de chaves. Se a chave for gerada fora da ferramenta de chave ou for gerada em uma instância de cliente diferente, você deve primeiro importar os metadados de chave e certificado para o repositório de chaves. Para obter instruções sobre como importar os metadados do certificado, consulte o exemplo de código em [Registrando chaves pré-existentes](register-pre-existing-keys-with-keystore.md) com o Key Store. AWS CloudHSM 

A cadeia de certificados deve ser verificável. Se você não conseguir verificar o certificado, talvez seja necessário importar o certificado de assinatura (autoridade de certificação) para o repositório de chaves para que a cadeia possa ser verificada.

# Exportar um certificado AWS CloudHSM usando o keytool
<a name="export_cert_using_keytool"></a>

O exemplo a seguir gera um certificado no formato binário X.509. Para exportar um certificado legível por humanos de AWS CloudHSM, adicione `-rfc` ao `-exportcert` comando. 

```
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/
```