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.
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.
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.
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.
- Acesse o HSM com o Utilitário de Gerenciamento de Chaves.
-
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.
- Gere um par de chaves ou uma chave secreta. Consulte Gerar Par de Chaves e Gerar Chave Secreta para obter instruções.
- Repita as etapas 1 e 2 e use o comando
findKey -c 4para 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. - 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.
-
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 -
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.
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 DKKSImportando 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.
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.
Importante:
-
Quando você usa o comando
keytoolpara 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 arquivojava.securitypara 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:
-
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.
- Exclua o par de chaves desnecessário do HSM usando as instruções em Excluindo uma Chave.