Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Data Encryption Workshop/ Preguntas frecuentes/ KMS Relacionados/ ¿Por qué no puedo envolver claves asimétricas usando -id-aes256-wrap-pad en OpenSSL?
Actualización más reciente 2024-09-13 GMT+08:00

¿Por qué no puedo envolver claves asimétricas usando -id-aes256-wrap-pad en OpenSSL?

Síntoma

Por defecto, el algoritmo -id-aes256-wrap-pad no está habilitado en OpenSSL. Para envolver una clave, actualice OpenSSL a la versión más reciente y parchearlo primero.

Solución

Utilice los comandos bash para crear una copia local del OpenSSL existente. No es necesario eliminar o modificar las configuraciones predeterminadas de instalación del cliente OpenSSL.

  1. Cambie al usuario root.

    sudo su -

  2. Ejecute el siguiente comando y registre la versión de OpenSSL:

    openssl version

  3. Ejecute los siguientes comandos para crear el directorio /root/build. Este directorio se utilizará para almacenar el último archivo binario OpenSSL.

    mkdir $HOME/build

    mkdir -p $HOME/local/ssl

    cd $HOME/build

  4. Descargue la última versión de OpenSSL desde https://www.openssl.org/source/.
  5. Descargue y descomprima el archivo binario.
  6. Sustituya openssl-1.1.1d.tar.gz con la última versión de OpenSSL descargada en paso 4.

    curl -O https://www.openssl.org/source/openssl-1.1.1d.tar.gz

    tar -zxf openssl-1.1.1d.tar.gz

  7. Utilice la herramienta gcc para parchear la versión y compilar el archivo binario descargado.

    yum install patch make gcc -y

    Si está utilizando una versión que no sea OpenSSL-1.1.1d, es posible que tenga que cambiar el directorio y los comandos utilizados, o es posible que este parche no funcione correctamente.

  8. Ejecute los siguientes comandos:

    sed -i "/BIO_get_cipher_ctx(benc, &ctx);/a\ EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPHER_CTX_FLAG_WRAP_ALLOW);" $HOME/build/openssl-1.1.1d/apps/enc.c

  9. Ejecute los siguientes comandos para compilar el archivo enc.c de OpenSSL:

    cd $HOME/build/openssl-1.1.1d/

    ./config --prefix=$HOME/local --openssldir=$HOME/local/ssl

    make -j$(grep -c ^processor /proc/cpuinfo)

    make install

  10. Configure la variable de entorno LD_LIBRARY_PATH para asegurarse de que las bibliotecas requeridas estén disponibles para OpenSSL. La última versión de OpenSSL se ha vinculado dinámicamente al archivo binario en el directorio $HOME/local/ssl/lib/, y no se puede ejecutar directamente en shell.
  11. Cree un script llamado openssl.sh para cargar la ruta $HOME/local/ssl/lib/ antes de ejecutar el archivo binario.

    cd $HOME/local/bin/

    echo -e '#!/bin/bash \nenv LD_LIBRARY_PATH=$HOME/local/lib/ $HOME/local/bin/openssl "$@"' > ./openssl.sh

  12. Ejecute el siguiente comando para configurar un bit de ejecución en el script:

    chmod 755 ./openssl.sh

  13. Ejecute el siguiente comando para iniciar la versión parcheada de OpenSSL:

    $HOME/local/bin/openssl.sh