comando securityUtility

O securityUtility comando suporta criptografia de texto simples, criação de certificados SSL e criação de chaves LTPA para Liberty. A partir da versão 25.0.0.12, o securityUtility comando suporta a configuração do FIPS 140-3 para o Liberty.

Open Liberty Documentação para o comando securityUtility na versão 21.0.0.11 e posterior está disponível no website do Open Liberty.

Sintaxe

A sintaxe de comando é a seguinte:

securityUtility task [options]

Em que as options são diferentes com base no valor de task.

CUIDADO:

Diferentes sistemas operacionais e ambientes de linha de comandos tratam alguns caracteres de forma diferente. Em muitos ambientes, é possível redefinir quais caracteres são especiais e como eles se comportam.

Para plataformas WindowsPor padrão, no ambiente Windows, se você tiver um ponto de exclamação (!) em sua cadeia de entrada, ele deve ser escapado pelo caractere de careta (^). O exemplo a seguir tem um valor de a! codificado.
D:\Liberty\images\855\Liberty855\wlp\bin>securityUtility encode "a^!"

Para alguns sistemas operacionais, talvez seja necessário usar aspas simples em torno dos argumentos que são transmitidos para a ferramenta.

Se você usar um emulador de terminal, assegure-se de que sua sessão esteja configurada para usar a mesma página de código que seu servidor.

Consulte o seu sistema operacional, o shell de comando e a documentação do emulador de terminal sobre caracteres e páginas de códigos especiais se você tiver resultados inesperados.

Parâmetros

As tarefas a seguir estão disponíveis para o comando securityUtility:
ajuda
Imprime informações da ajuda para uma tarefa especificada.
[ 25.0.0.12 e posteriormente]generateAESKey

Gera uma Base64-encodedAES-256 chave para criptografia de senha. A chave gerada pode ser usada definindo a wlp.aes.encryption.key variável em um arquivo de configuração Liberty.

As opções são:

--createConfigFile=name
Cria um arquivo de configuração XML que contém a chave AES gerada na variável wlp.aes.encryption.key. Se essa opção não for fornecida, a chave será impressa no console.
--key=password
Deriva uma Base64-encodedAES-256 chave a partir da senha fornecida usando a função interna de derivação de chaves do Liberty. Se essa opção não for especificada, uma chave AES-256 aleatória será gerada.
codificar
Codifica o texto fornecido usando Base64. Se nenhuma opção for especificada, o comando entrará no modo interativo. Caso contrário, o texto fornecido será codificado. O texto com espaços deve ser colocado entre aspas.
As opções são:
--encoding=encoding_type

Especifica como codificar a senha. As codificações suportadas são xor, aes e hash. O valor padrão é xor.

[ 25.0.0.2 e posterior]O aes tipo usa AES-256 criptografia.

Na versão 25.0.0.1 e anteriores, o tipo aes usa a criptografia AES-128.

Você pode usar a opção de codificação " hash para codificar senhas para o registro de usuário básico e o elemento " quickStartSecurity.

[ 25.0.0.3 e posterior]Quando o FIPS 140-3 está habilitado, as opções aes hash e usam algoritmos aprimorados para criptografar e codificar strings. As cadeias de caracteres que foram criptografadas ou codificadas com essas opções antes de os algoritmos serem aprimorados podem falhar em ambientes FIPS 140-3.

--key=encryption_key
Especifica a chave a ser usada quando você codifica usando a criptografia AES. Essa string é hashada para produzir a chave de criptografia AES usada para criptografar e descriptografar a senha. A chave pode ser fornecida para o servidor definindo a variável wlp.password.encryption.key cujo valor é a chave. Se essa opção não for fornecida, uma chave padrão será usada.

Veja também informações sobre configurando a variável para wlp.password.encryption.key.

[ 25.0.0.12 e posteriormente]--base64Key=base64_key
Especifica uma Base64-encodedAES-256 chave para codificar a senha usando criptografia AES. A chave pode ser fornecida ao servidor definindo a wlp.aes.encryption.key variável. Esta opção não pode ser usada com as opções --aesConfigFile --key ou.
[ 25.0.0.12 e posteriormente]--aesConfigFile=file
Especifica um arquivo XML ou Java Properties que define a variável wlp.password.encryption.keywlp.aes.encryption.key ou. Ambas as variáveis não podem estar presentes no mesmo arquivo. Esta opção não pode ser usada com as opções --base64Key --key ou.
[ 25.0.0.12 e posteriormente]Importante: A partir do 25.0.0.12, o securityUtility encode comando suporta a criptografia de senha Base64-encodedAES-256. Isso complementa o suporte AES existente que usa uma senha para derivar uma chave por meio da --key opção. Para usar uma chave pré-gerada Base64-encoded, especifique a --base64Key opção ou use a --aesConfigFile opção para referenciar um arquivo que define wlp.aes.encryption.key.
--listCustom
Exibir as informações da criptografia de senha personalizada em formato JavaScript Object Notation (JSON). As informações consistem em:
  • name: o nome do algoritmo de criptografia de senha customizada.
  • featurename: o nome do recurso.
  • description: a descrição da criptografia de senha customizada.

Para obter mais informações sobre criptografia de senha personalizada, consulte Desenvolvendo um provedor de customPasswordEncryption.

--notrim
Especifique se os caracteres de espaço são removidos do início e do término do texto especificado. Se essa opção for especificada, o texto fornecido será codificado no estado em que se encontra. Se essa opção não for especificada, os caracteres de espaço do início e do término do texto especificado serão removidos.
text
O texto que deve ser codificado.
createSSLCertificate
Cria um keystore padrão que inclui um certificado SSL para uso em uma configuração de servidor ou cliente.
Detalhes do keystore:
local: no arquivo resource/security/key.p12 do diretório do cliente ou do servidor.
type: PKCS12
Na versão 19.0.0.2 e anterior: local: no arquivo resource/security/key.jks do diretório do servidor ou cliente.
Na versão 19.0.0.2 e anterior: type: JKS
password: senha que é fornecida com a opção --password. A senha é necessária para abrir o arquivo keystore e recuperar a chave por meio do arquivo keystore.
Detalhes do certificado:
type: certificado autoassinado.
size: 2048 por padrão, um tamanho alternativo pode ser especificado com a opção --keySize.
algoritmo de assinatura: SHA256withRSA, pode ser personalizado com a --sigAlg opção.
validity: 365 dias por padrão, pode ser customizado com a opção --validity.
SubjectDN: CN=<hostname>,OU=<client or server name>,O=ibm,C=us por padrão, pode ser customizado com a opção --subject.

As opções são:

--server=name
Especifica o nome do servidor Liberty para o qual o armazenamento de chaves e certificado é criado. Essa opção não poderá ser usada se a opção --client for especificada.
--client=name
Especifica o nome do cliente Liberty para o qual o armazenamento de chaves e certificado é criado. Essa opção não poderá ser usada se a opção --server for especificada.
--keyType=keystore type
Especifica o tipo de keystore a ser gerado. Para gerar um armazenamento de chaves JKS, especifique a --keyType opção com o valor JKS. Por padrão, um keystore PKCS12 é gerado. No entanto, para especificar explicitamente a geração de um PKCS12 keystore, especifique a --keyType opção com o valor PKCS12.

Um keystore PKCS12 possui uma série de vantagens sobre um keystore JKS. O keystore PKCS12 é mais extensível, suporta algoritmos criptográficos mais fortes e é amplamente adotado. O formato PKCS12 é frequentemente o formato que as autoridades de certificação fornecem quando emitem certificados.

--keySize=size
Especifica o tamanho do bit da chave do certificado. O valor padrão é 2048.
--password=password
Especifica a senha a ser usada no keystore, que deve ser pelo menos seis caracteres de comprimento. Essa opção é obrigatória.
--passwordEncoding=password_encoding_type
Especifica como codificar a senha do keystore. O valor de codificação suportado é xor ou aes. Se essa opção não for fornecida, um valor padrão de xor será usado.

[ 25.0.0.2 e posterior]O aes tipo usa criptografia AES-256.

Na versão 25.0.0.1 e anteriores, o tipo aes usa a criptografia AES-128.

--passwordKey=password_encryption_key
Especifica a chave a ser usada para codificar a senha do keystore usando a criptografia AES. Esta sequência é submetida a hash para produzir uma chave de criptografia que é usada para criptografar e decriptografar a senha. A chave pode ser fornecida para o servidor definindo a variável wlp.password.encryption.key cujo valor é a chave. Se essa opção não for fornecida, uma chave padrão será usada.
--validity=days
Especifica o número de dias que o certificado é válido, o que deve ser igual ou maior que 365. Se essa opção não for fornecida, um valor padrão de 365 será usado.
--subject=DN
Especifica o Nome Distinto (DN) para o assunto do certificado e o emissor. Se essa opção não for fornecida, um valor padrão de CN=<hostname>,OU=<server or client name>,O=ibm,C=us será usado. O valor CN é recuperado usando um método java para obter o nome do host local da máquina. Se o nome do host não puder ser resolvido, o endereço IP será retornado.
--sigAlg
Especifica o algoritmo de assinatura que é usado para assinar o certificado autoassinado. O algoritmo de assinatura que é suportado depende do que é suportado pelo JRE subjacente. Algoritmos de assinatura mais fortes podem requerer que o JRE tenha o arquivo de políticas sem restrições no lugar.
O comando aceita SHA256withRSA (default), SHA1withRSA, SHA384withRSA, SHA512withRSA, SHA1withECDSA, SHA256withECDSA, SHA384withECDSA e SHA512withECDSA. Os algoritmos de assinatura que terminam com RSA criam certificados com chaves RSA e os algoritmos de assinatura que terminam com ECDSA criam certificados com chaves Elliptical Curve (EC).
Nota: Se você estiver usando certificados criados com chaves EC, então o seu servidor precisa de uma lista de cifras personalizadas na configuração ssl para incluir cifras CE.
--extInfo
Especifica as informações de extensão de qualquer certificado X.509 utilizado para criar o certificado padrão. Por padrão, a extensão do Nome alternativo do assunto é incluída no certificado com o nome do host do servidor. Se a opção --extInfo for usada, o valor será passado diretamente para o comando keytool. Use a sintaxe da sinalização --ext no comando keytool.
[ 25.0.0.12 e posteriormente]--passwordBase64Key=base64_key
Especifica uma Base64-encodedAES-256 chave usada para criptografar a senha do armazenamento de chaves quando a --passwordEncoding=aes opção é especificada. Esta opção não pode ser usada com as opções --aesConfigFile --passwordKey ou.
[ 25.0.0.12 e posteriormente]--aesConfigFile=file
Especifica um arquivo XML ou Java Properties que define a chave AES a ser usada para criptografia de senha. O arquivo deve conter a variável wlp.password.encryption.keywlp.aes.encryption.key ou. Esta opção não pode ser usada com as opções --passwordBase64Key --passwordKey ou.
createLTPAKeys

Cria um conjunto de chaves LTPA para uso pelo servidor ou que pode ser compartilhado com vários servidores. Se nenhum servidor ou arquivo for especificado, um arquivo ltpa.keys será criado no diretório de trabalho atual.

As opções são:

--file=name
O arquivo no qual escrever as chaves do LTPA. Essa opção não pode ser usada se a opção --server for especificada.
--passwordEncoding=password_encoding_type
Especifica como codificar a senha das chaves LTPA no arquivo server.xml . Os tipos de codificação compatíveis são xor e aes. Se essa opção não for especificada, será usado um tipo de codificação padrão de xor .

Você pode usar o comando securityUtility encode --listCustom para verificar se há suporte para outras criptografias personalizadas.

--passwordKey=password_encryption_key
Especifica a chave a ser usada para codificar uma senha de chaves LTPA com criptografia AES. Esta sequência é submetida a hash para produzir uma chave de criptografia que é usada para criptografar e decriptografar a senha. Você pode fornecer a chave definindo a variável wlp.password.encryption.key como o valor da chave. Se essa opção não for especificada, será usada uma chave padrão.
--server=name
Especifica o nome do servidor Liberty para o qual as chaves LTPA são criadas. Essa opção não pode ser usada se a opção --file for especificada.
[ 25.0.0.12 e posteriormente]--passwordBase64Key=base64_key
Especifica uma Base64-encodedAES-256 chave para criptografar a senha das chaves LTPA quando a --passwordEncoding=aes opção é usada. Esta opção não pode ser usada com as opções --aesConfigFile --passwordKey ou.
[ 25.0.0.12 e posteriormente]--aesConfigFile=file
Especifica um arquivo XML ou Java Properties que define a chave AES usada para codificar a senha das chaves LTPA. O arquivo deve conter ou wlp.password.encryption.key wlp.aes.encryption.key. Esta opção não pode ser usada com as opções --passwordBase64Key --passwordKey ou.

[ 25.0.0.3 e posterior]Para obter informações sobre como criar chaves LTPA usando algoritmos aprovados pela FIPS 140-3, consulte Configurando o Liberty para conformidade com a FIPS.

[ 25.0.0.12 e posteriormente]configureFIPS

Configura o FIPS 140-3 em todos os servidores, clientes e ferramentas.

As opções são:

--server=server_name
Configura o FIPS 140-3 em um servidor especificado.
--client=client_name
Configura o FIPS 140-3 em um cliente especificado.
--customProfileFile=name
Para IBMSemeru Runtime, cria um arquivo de perfil personalizado com um nome especificado ou em um local especificado. O nome padrão do arquivo de perfil personalizado é FIPS140-3-Liberty-Application.properties.
  • Se essa opção não for fornecida, o arquivo de perfil personalizado estará localizado no diretório /etc da sua instalação do Liberty.
  • Se essa opção não for fornecida e a --server opção for usada, o arquivo de perfil personalizado será localizado no /security diretório do servidor especificado.
  • Se essa opção não for fornecida e a --client opção for usada, o arquivo de perfil personalizado será localizado no /security diretório do cliente especificado.
--disable
Desativa o FIPS 140-3 em todos os servidores e clientes que não foram configurados individualmente. Use as opções --server --client e com a --disable opção para desativar o FIPS 140-3 de servidores e clientes especificados, respectivamente.

Uso

Os exemplos a seguir demonstram a sintaxe correta:

securityUtility encode --encoding=aes --base64Key=<your_base64_key> GiveMeLiberty

securityUtility createSSLCertificate --password=<your_password> \
                                     --passwordEncoding=aes \
                                     --passwordBase64Key=<your_base64_key> \
                                     --server=myserver \
                                     --validity=365 \
                                     --subject=CN=mycompany,O=myOrg,C=myCountry

securityUtility createLTPAKeys --password=<your_password> \
                               --passwordEncoding=aes \
                               --passwordBase64Key=<your_base64_key> \
                               --file=myLTPA.keys

securityUtility configureFIPS --server=myserver

securityUtility help createSSLCertificate