Comandos Keytool

Saiba mais sobre os comandos KeyTool do Provedor JCE para KMS Dedicado.

Ao usar os comandos de keytool neste tópico, certifique-se de usar os sinalizadores de comando discutidos em Pré-requisitos para Keytool e Jarsigner.

Gerar Par de Chaves

Use o flag -genkeypair para gerar 1 chave privada e 1 chave pública no DKMS HSM usando a ferramenta de chave com JCE. A chave também é armazenada na área de armazenamento de chaves local por esta operação.

Para gerar um par de chaves

Importante: Quando você usa o comando keytool para gerar um par de chaves ou importar uma área de armazenamento de chaves existente, sua configuração do Java Security garante que uma chave pública e privada seja gerada no cartão HSM. Se você estiver usando o arquivo java.security para essa configuração, o provedor de KMS Dedicado do OCI deverá ser especificado como prioridade 2 no arquivo para que os pares de chaves sejam gerados no HSM.

Como alternativa, no diretório atual, crie um arquivo Java Security Override File e adicione o provedor de KMS Dedicado do OCI na segunda posição como security.provider.2. Ao executar um comando Keytool, use a seguinte opção para especificar o arquivo Java Security Override:

-J-Djava.security.properties=<java_security_override_file>
                    

Consulte Adicionar o Provedor JCE à Segurança Java para obter mais informações sobre como configurar a Segurança Java.

Dica

O par de chaves gerado não pode ser encontrado usando um alias no Utilitário de Gerenciamento de Chaves. Opcionalmente, você pode listar chaves antes e depois da geração de chaves para identificar a nova chave no HSM. Isso permite que você exclua facilmente a chave no HSM se precisar fazer isso. Antes de criar um par de chaves, acesse o HSM e crie uma lista de identificadores existentes. Em seguida, crie uma lista depois de criar o par de chaves para encontrar o identificador do novo par de chaves. Consulte Identificando o Identificador de um Novo Par de Chaves ou Chave Secreta no HSM para obter instruções.

Sintaxe de comando:

keytool \
-J-cp -J<dedicated_kms_jce_jar_path> \
-genkeypair -alias <example-alias> -keyalg <algorithm> -keysize <key-size> -sigalg <signature-algorithm> \
-dname <example-distinguished-name> \
-keypass <example-password> -keystore <local-keystore-name> -storepass <example-password> -storetype DKKS 
-J-Djava.security.properties=<java_security_override_file>
                    

Gerar Chave Secreta

Use o flag -genseckey no Utilitário de Gerenciamento de Chaves com JCE .para executar essa operação. Esta operação gera 1 chave secreta no HSM.

Para gerar uma chave secreta
Importante

Não é possível localizar a chave secreta usando um alias no Utilitário de Gerenciamento de Chaves. Antes de criar uma chave secreta, acesse o HSM e crie uma lista de identificadores existentes. Você pode usar essa lista após criar o par de chaves para localizar o handle da nova chave secreta. Consulte Identificando o Identificador de um Novo Par de Chaves ou Chave Secreta no HSM para obter instruções.

Sintaxe de comando:

keytool \
-J-cp -J<dedicated_kms_jce_jar_path> \
-genseckey -alias <example-alias> -keyalg <algorithm> -keysize <key-size> \
-keypass <example-password> -keystore <local-keystore-name> -storepass <example-password> -storetype DKKS

Identificando o Identificador de um Novo Par de Chaves ou Chave Secreta no HSM

Não é possível localizar novos pares de chaves ou chaves secretas criadas no HSM usando um alias no Utilitário de Gerenciamento de Chaves. Você pode encontrar o identificador de um novo par de chaves ou chave secreta comparando uma lista de todos os identificadores antes que um par de chaves ou chave secreta seja gerado com uma segunda lista de todos os identificadores criados após a geração de um par de chaves ou chave secreta. A diferença entre as duas listas mostra o identificador recém-criado para o par de chaves ou chave secreta.

Para identificar o identificador da nova chave
  1. Acesse o HSM com o Utilitário de Gerenciamento de Chaves.
  2. Execute o seguinte comando para localizar e salvar uma lista dos identificadores existentes:

    findKey -c <key-type>
                                

    Para o <key-type>, os valores válidas são: 2 = público 3 = privado 4 = segredo. Consulte Localizando uma Única Chave para obter mais informações.

  3. Gere um par de chaves ou uma chave secreta. Consulte Gerar Par de Chaves e Gerar Chave Secreta para obter instruções.
  4. Repita as etapas 1 e 2 e use o comando findKey -c 4 para localizar e salvar uma lista dos identificadores no HSM. A nova lista inclui o identificador do par de chaves recém-gerado ou da chave secreta.
  5. Execute uma operação diff nas duas listas para encontrar um novo identificador.

Excluindo uma Chave

Use as instruções na seção expansível a seguir para excluir chaves da área de armazenamento de chaves local e do HSM.

Para excluir uma chave
  1. Execute o seguinte comando keytool para excluir a chave na área de armazenamento de chaves local:

    keytool \
    -J-cp -J<dedicated_kms_jce_jar_path> \
    -delete -alias <example-alias> \
    -keypass <example-password> -keystore <example-keystore-name> -storepass <example-password> -storetype DKKS 
    
  2. Para excluir uma chave no HSM, execute o seguinte comando no utilitário Gerenciamento de Chaves Dedicadas:

    deleteKey -k <key-handle>
                                

    Consulte Excluindo uma Chave para obter mais informações:

Gerando uma Solicitação de Assinatura de Certificado (CSR) com a Ferramenta de Chave

Use o flag -certreq para gerar uma CSR (certificate ssigning request, solicitação de assinatura de certificado) usando uma chave no HSM. O comando é executado usando o utilitário keytool com JCE.

Para gerar um CSR

Execute o seguinte comando para gerar um CSR usando uma chave no HSM:

keytool \
-J-cp -J<dedicated_kms_jce_jar_path> \
-certreq \
-alias <example-alias> \
-file <csr-file> \
-keyalg -keyalg <algorithm> -keysize <key-size> -sigalg <signature-algorithm> \
-dname <example-distinguished-name> \
-keypass <example-password> -keystore <local-keystore-name> -storepass <example-password> -storetype DKKS

Importando um Certificado para uma Área de Armazenamento de Chaves

Use o flag -importcert para importar um certificado para a área de armazenamento de chaves local. O comando é executado usando a ferramenta de teclas com JCE.

Para importar um certificado para uma área de armazenamento de chaves

Sintaxe de comando:

keytool \
-J-cp -J<dedicated_kms_jce_jar_path> \
-importcert -noprompt \
-alias <example-alias> \
-file <crt-file> \
-keypass <example-password> -keystore <local-keystore-name> -storepass <example-password>
                    

Importando uma Área de Armazenamento de Chaves Java para o HSM

Use o flag -importkeystore para importar todas as chaves de um armazenamento de chaves para o HSM. O comando é executado usando a ferramenta de teclas com JCE.

Para importar o armazenamento de chaves para o HSM

Importante:

  • Quando você usa o comando keytool para gerar um par de chaves ou importar um armazenamento de chaves existente, sua configuração de Segurança Java garante que uma chave pública e privada seja gerada no cartão HSM. Se você estiver usando o arquivo java.security para essa configuração, o provedor de KMS Dedicado do OCI deverá ser especificado como prioridade 2 no arquivo para que os pares de chaves sejam gerados no HSM.

    Como alternativa, no diretório atual, crie um arquivo Java Security Override File e adicione o provedor de KMS Dedicado do OCI na segunda posição como security.provider.2. Ao executar um comando Keytool, use a seguinte opção para especificar o arquivo de Substituição de Segurança Java:

    -J-Djava.security.properties=<java_security_override_file>
                                

    Consulte Adicionar o Provedor JCE à Segurança Java para obter mais informações sobre como configurar a Segurança Java.

  • Se você importar uma área de armazenamento de chaves com 2 ou mais chaves para o HSM, não poderá identificar o identificador das chaves usando o método descrito em Identificando o Identificador de um Novo Par de Chaves ou Chave Secreta no HSM e não poderá fazer referência às chaves no Utilitário de Gerenciamento de Chaves usando um alias.

Sintaxe de comando:

keytool \
-J-cp -J<dedicated_kms_jce_jar_path> \
-J-Djava.security.properties=<java_security_override_file> \
-importkeystore \
-srckeystore <example-source-keystore> - srcstoretype <example-source-keystore-type> -srcstorepass <example-source-keystore-password> \
-destkeystore <example-destination-keystore> -deststoretype DKKS - deststorepass <example-destination-keystore-password> \

Inicializando uma Área de Armazenamento de Chaves

Se você não tiver uma área de armazenamento de chaves inicializada vazia, poderá criar uma executando as seguintes operações:

  1. O programa keytool não pode criar uma área de armazenamento de chaves DKKS vazia, mas você pode usar a ferramenta de chaves para criar uma área de armazenamento de chaves como parte de uma operação de geração de chaves. Depois de gerar uma chave com a ferramenta de chaves, você poderá excluir a chave e a área de armazenamento de chaves inicializada permanecerá disponível para você.

    Use as instruções em Gerar Par de Chaves e Identificando o Identificador de um Novo Par de Chaves ou Chave Secreta no HSM para gerar um par de chaves que pode ser identificado por um identificador. Quando você gera esse par de chaves, o utilitário keytool cria uma área de armazenamento de chaves inicializada que você pode usar para operações futuras.

  2. Exclua o par de chaves desnecessário do HSM usando as instruções em Excluindo uma Chave.