securityUtility, mandato

El securityUtility comando admite el cifrado de texto sin formato, la creación de certificados SSL es y la creación de claves LTPA para Liberty. A partir de la versión 25.0.0.12, el securityUtility comando admite la configuración de FIPS 140-3 para Liberty.

Open Liberty La documentación del mandato securityUtility en la versión 21.0.0.11 y posteriores está disponible en el sitio web de Open Liberty.

Sintaxis

La sintaxis del mandato es la siguiente:

securityUtility task [options]

Donde options son diferentes en función del valor de task.

ATENCIÓN:

Los distintos sistemas operativos y entornos de línea de mandatos tratan de forma distinta algunos caracteres. En muchos entornos, puede redefinir qué caracteres son especiales y cómo se comportan.

Para plataformas WindowsDe forma predeterminada, en el entorno de Windows, si tiene un signo de exclamación (!) en la serie de entrada, se debe escapar mediante el carácter de acento circunflejo (^). El ejemplo siguiente tiene un valor de a! codificado.
D:\Liberty\images\855\Liberty855\wlp\bin>securityUtility encode "a^!"

En algunos sistemas operativos, es posible que tenga que utilizar comillas simples alrededor de los argumentos que se pasan a la herramienta.

Si utiliza un emulador de terminal, asegúrese de que la sesión esté configurada para utilizar la misma página de códigos que el servidor.

Consulte en la documentación del sistema operativo, el shell de mandatos y el emulador de terminal la información sobre caracteres especiales y las páginas de códigos, si tiene resultados inesperados.

Parámetros

Están disponibles las tareas siguientes para el mandato securityUtility:
ayuda
Imprime información de ayuda para la tarea especificada.
[ 25.0.0.12 y más tarde]generateAESKey

Genera una Base64-encodedAES-256 clave para el cifrado de contraseñas. La clave generada se puede utilizar definiendo la wlp.aes.encryption.key variable en un archivo de configuración Liberty.

Las opciones son las siguientes:

--createConfigFile=name
Crea un archivo de configuración XML que contiene la clave AES generada en la wlp.aes.encryption.key variable. Si no se proporciona esta opción, la clave se imprime en la consola.
--key=password
Deriva una Base64-encodedAES-256 clave a partir de la frase de contraseña proporcionada utilizando la función interna de derivación de claves de Liberty. Si no se especifica esta opción, se genera una clave AES-256 aleatoria.
encode
Codifica el texto proporcionado utilizando Base64. Si no se especifican opciones, el mandato entra en modalidad interactiva. De lo contrario, se codifica el texto proporcionado. El texto con espacios se debe exponer entre comillas.
Las opciones son las siguientes:
--encoding=encoding_type

Especifica cómo codificar la contraseña. Las codificaciones admitidas son xor, aes y hash. El valor predeterminado es xor.

[ 25.0.0.2 y posteriores]El aes tipo utiliza AES-256 cifrado.

En la versión 25.0.0.1 y anteriores, el tipo aes utiliza cifrado AES-128.

Puede utilizar la opción de codificación " hash " para codificar las contraseñas del registro de usuario básico y el elemento " quickStartSecurity ".

[ 25.0.0.3 y posteriores]Cuando FIPS 140-3 está habilitado, las opciones aes hash y utilizan algoritmos mejorados para cifrar y codificar cadenas. Las cadenas que se cifraron o codificaron con estas opciones antes de que se mejoraran los algoritmos podrían fallar en entornos FIPS 140-3.

--key=encryption_key
Especifica la clave que debe utilizarse cuando se codifica mediante el cifrado AES. Esta cadena se somete a un proceso de hash para generar la clave de cifrado AES que se utiliza para cifrar y descifrar la contraseña. La clave se puede proporcionar al servidor definiendo la variable wlp.password.encryption.key cuyo valor es la clave. Si no se proporciona esta opción, se utiliza una clave predeterminada.

Consulte también información sobre establecimiento de la variable para wlp.password.encryption.key.

[ 25.0.0.12 y más tarde]--base64Key=base64_key
Especifica una Base64-encodedAES-256 clave para codificar la contraseña mediante el cifrado AES. La clave se puede proporcionar al servidor definiendo la wlp.aes.encryption.key variable. Esta opción no se puede utilizar con las opciones --aesConfigFile --key o.
[ 25.0.0.12 y más tarde]--aesConfigFile=file
Especifica un archivo XML o Java Properties que define la variable wlp.password.encryption.key wlp.aes.encryption.key o. Ambas variables no pueden estar presentes en el mismo archivo. Esta opción no se puede utilizar con las opciones --base64Key --key o.
[ 25.0.0.12 y más tarde]Importante: A partir de 25.0.0.12, el securityUtility encode comando admite el cifrado de contraseñas Base64-encoded AES-256. Esto complementa el soporte AES existente que utiliza una frase de contraseña para derivar una clave a través de la --key opción. Para utilizar una clave Base64-encoded pregenerada, especifique la --base64Key opción o utilice la --aesConfigFile opción para hacer referencia a un archivo que defina wlp.aes.encryption.key.
--listCustom
Visualizar la información del cifrado de contraseña personalizado en formato JavaScript Object Notation (JSON). La información consta de:
  • name: El nombre de algoritmo del cifrado de contraseña personalizado.
  • featurename: El nombre de característica.
  • description: La descripción del cifrado de contraseña personalizado.

Para obtener más información sobre el cifrado de contraseñas personalizadas, consulte Desarrollo de un proveedor de customPasswordEncryption.

--notrim
Especifique si los caracteres de espacio se eliminan del principio y el final del texto especificado. Si se especifica esta opción, el texto proporcionado se codificará tal como está. Si no se especifica esta opción, se eliminan los caracteres de espacio del principio y el final del texto especificado.
text
El texto que se ha de codificar.
createSSLCertificate
Crea un almacén de claves predeterminado que incluye un certificado SSL para su uso en una configuración de servidor o cliente.
Detalles del almacén de claves:
location: En el archivo resource/security/key.p12 del servidor o directorio de cliente.
tipo: PKCS12
En la versión 19.0.0.2 y anteriores: ubicación: en el archivo resource/security/key.jks del directorio de servidor o cliente.
En la versión 19.0.0.2 y anteriores: type: JKS
contraseña: contraseña que se proporciona con la opción --password. La contraseña es necesaria para abrir el archivo de almacén de claves y recuperar la clave del archivo de almacén de claves.
Detalles del certificado:
tipo: certificado firmado automáticamente.
tamaño: 2048 de forma predeterminada; puede especificarse un tamaño alternativo con la opción --keySize.
algoritmo de firma: SHA256withRSA, se puede personalizar con la --sigAlg opción.
validez: 365 días de forma predeterminada; se puede personalizar con la opción --validity.
CN=<hostname>,OU=<client or server name>,O=ibm,C=usSubjectDN: Por defecto, se puede personalizar con la --subject opción.

Las opciones son las siguientes:

--server=name
Especifica el nombre del servidor de Liberty para el que se crea el almacén de claves y el certificado. Esta opción no puede utilizarse si se especifica la opción --client.
--client=name
Especifica el nombre del cliente de Liberty para el que se crea el almacén de claves y el certificado. Esta opción no puede utilizarse si se especifica la opción --server.
--keyType=keystore type
Especifica el tipo de almacén de claves que se va a generar. Para generar un almacén de claves JKS, especifique la --keyType opción con el valor JKS. De forma predeterminada, se genera un almacén de claves PKCS12. Sin embargo, para especificar explícitamente la generación de un PKCS12 almacén de claves, especifique la --keyType opción con el valor de PKCS12.

Un almacén de claves PKCS12 tiene varias ventajas respecto a un almacén de claves JKS. El almacén de claves PKCS12 es más extensible, da soporte a algoritmos criptográficos más fuertes y es ampliamente adoptado. El formato PKCS12 es con frecuencia el formato que proporcionan las entidades emisoras de certificados cuando emiten certificados.

--keySize=size
Especifica el tamaño en bits de la clave del certificado. El valor predeterminado es 2048.
--password=password
Especifica la contraseña que se va a utilizar en el almacén de claves, que debe tener al menos seis caracteres de longitud. Esta opción es obligatoria.
--passwordEncoding=password_encoding_type
Especifica cómo codificar la contraseña de almacén de claves. El valor de codificación soportado es xor o aes. Si no se proporciona esta opción, se utilizará un valor predeterminado de xor.

[ 25.0.0.2 y posteriores]El aes tipo utiliza un cifrado AES-256.

En la versión 25.0.0.1 y anteriores, el tipo aes utiliza cifrado AES-128.

--passwordKey=password_encryption_key
Especifica la clave que se debe utilizar para codificar la contraseña del almacén de claves utilizando el cifrado AES. Se aplica el algoritmo hash a esta serie para producir una clave de cifrado que se utiliza para cifrar y descifrar la contraseña. La clave se puede proporcionar al servidor definiendo la variable wlp.password.encryption.key cuyo valor es la clave. Si no se proporciona esta opción, se utiliza una clave predeterminada.
--validity=days
Especifica el número de días que el certificado es válido, el cual debe ser igual o mayor que 365. Si no se proporciona esta opción, se utilizará un valor predeterminado de 365.
--subject=DN
Especifica el nombre distinguido (DN) del sujeto y emisor del certificado. Si no se proporciona esta opción, se utiliza un valor predeterminado de CN=<hostname>,OU=<server or client name>,O=ibm,C=us . El valor CN se recupera utilizando un método java para obtener el nombre de host local de la máquina. Si no puede resolverse el nombre de host, se devuelve la dirección IP.
--sigAlg
Especifique el algoritmo de firma que se utiliza para firmar el certificado autofirmado. El algoritmo de firma soportado depende de a qué dé soporte el JRE subyacente. Es posible que los algoritmos de firma más fuertes requieran que el JRE tenga aplicado un archivo de política sin restricciones.
El mandato acepta SHA256withRSA (valor predeterminado), SHA1withRSA, SHA384withRSA, SHA512withRSA, SHA1withECDSA, SHA256withECDSA, SHA384withECDSA y SHA512withECDSA. Los algoritmos de firma que finalizan con RSA crean certificados con claves RSA y los algoritmos de firma que finalizan con ECDSA crean certificados con claves de curva elíptica (EC, Elliptical Curve).
Nota: Si utiliza certificados creados con claves EC, el servidor necesita una lista de cifrados personalizados en la configuración ssl para incluir los cifrados EC.
--extInfo
Especifica cualquier información de extensión de certificado X.509 que utiliza para crear el certificado predeterminado. De forma predeterminada, la extensión de nombre alternativo de asunto se añade al certificado con el nombre de host del servidor. Si se utiliza la opción --extInfo, el valor se pasa directamente al mandato keytool. Utilice la sintaxis del distintivo --ext en el mandato keytool.
[ 25.0.0.12 y más tarde]--passwordBase64Key=base64_key
Especifica una Base64-encodedAES-256 clave que se utiliza para cifrar la contraseña del almacén de claves cuando se especifica la --passwordEncoding=aes opción. Esta opción no se puede utilizar con las opciones --aesConfigFile --passwordKey o.
[ 25.0.0.12 y más tarde]--aesConfigFile=file
Especifica un archivo XML o Java Properties que define la clave AES que se utilizará para el cifrado de contraseñas. El archivo debe contener la variable wlp.password.encryption.key wlp.aes.encryption.key o. Esta opción no se puede utilizar con las opciones --passwordBase64Key --passwordKey o.
createLTPAKeys

Crea un conjunto de claves LTPA para uso del servidor, o que pueden ser compartidas con múltiples servidores. Si no se especifica ningún servidor o archivo, se crea un archivo ltpa.keys en el directorio de trabajo actual.

Las opciones son las siguientes:

--file=name
El fichero en el que escribir las claves LTPA. Esta opción no puede utilizarse si se especifica la opción --server .
--passwordEncoding=password_encoding_type
Especifica cómo codificar la contraseña de las claves LTPA en el archivo server.xml . Los tipos de codificación admitidos son xor y aes. Si no se especifica esta opción, se utiliza por defecto el tipo de codificación xor .

Puedes utilizar el comando securityUtility encode --listCustom para ver si se admiten encriptaciones personalizadas adicionales.

--passwordKey=password_encryption_key
Especifica la clave que se utilizará para codificar una contraseña de claves LTPA con cifrado AES. Se aplica el algoritmo hash a esta serie para producir una clave de cifrado que se utiliza para cifrar y descifrar la contraseña. Puede proporcionar la clave definiendo la variable wlp.password.encryption.key como valor clave. Si no se especifica esta opción, se utiliza una clave por defecto.
--server=name
Especifica el nombre del servidor Liberty para el que se crean las claves LTPA. Esta opción no puede utilizarse si se especifica la opción --file .
[ 25.0.0.12 y más tarde]--passwordBase64Key=base64_key
Especifica una Base64-encodedAES-256 clave para cifrar la contraseña de las claves LTPA cuando se utiliza la --passwordEncoding=aes opción. Esta opción no se puede utilizar con las opciones --aesConfigFile --passwordKey o.
[ 25.0.0.12 y más tarde]--aesConfigFile=file
Especifica un archivo de propiedades XML o Java que define la clave AES utilizada para codificar la contraseña de las claves LTPA. El archivo debe contener wlp.password.encryption.key o wlp.aes.encryption.key. Esta opción no se puede utilizar con las opciones --passwordBase64Key --passwordKey o.

[ 25.0.0.3 y posteriores]Para obtener información sobre cómo crear claves LTPA utilizando algoritmos aprobados por FIPS 140-3, consulte Configuración de Liberty para el cumplimiento de FIPS.

[ 25.0.0.12 y más tarde]configureFIPS

Configura FIPS 140-3 en todos los servidores, clientes y herramientas.

Las opciones son las siguientes:

--server=server_name
Configura FIPS 140-3 en un servidor específico.
--client=client_name
Configura FIPS 140-3 en un cliente específico.
--customProfileFile=name
Para IBM Semeru Runtime, crea un archivo de perfil personalizado con un nombre específico o en una ubicación específica. El nombre predeterminado del archivo de perfil personalizado es FIPS140-3-Liberty-Application.properties.
  • Si no se proporciona esta opción, el archivo de perfil personalizado se encuentra en el /etc directorio de su instalación de Liberty.
  • Si no se proporciona esta opción y se utiliza la --server opción, el archivo de perfil personalizado se encuentra en el /security directorio del servidor especificado.
  • Si no se proporciona esta opción y se utiliza la --client opción, el archivo de perfil personalizado se encuentra en el /security directorio del cliente especificado.
--disable
Desactiva FIPS 140-3 en todos los servidores y clientes que no se hayan configurado individualmente. Utilice las opciones --server --client y con la --disable opción para desactivar FIPS 140-3 en los servidores y clientes especificados, respectivamente.

Uso

Los siguientes ejemplos muestran la sintaxis correcta:

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