Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Data Encryption Workshop/ Perguntas frequentes/ Perguntas frequentes/ Relacionado ao KMS/ Por que não posso encapsular chaves assimétricas usando -id-aes256-wrap-pad no OpenSSL?
Atualizado em 2024-09-14 GMT+08:00

Por que não posso encapsular chaves assimétricas usando -id-aes256-wrap-pad no OpenSSL?

Sintoma

Por padrão, o algoritmo -id-aes256-wrap-pad não está ativado no OpenSSL. Para encapsular uma chave, atualize o OpenSSL para a versão mais recente e aplique o patch primeiro.

Solução

Use os comandos bash para criar uma cópia local do OpenSSL existente. Não é necessário excluir ou modificar as configurações de instalação do cliente do OpenSSL padrão.

  1. Alterne para o usuário root.

    sudo su -

  2. Execute o seguinte comando e registre a versão do OpenSSL:

    openssl version

  3. Execute os seguintes comandos para criar o diretório /root/build. Este diretório será usado para armazenar o arquivo binário do OpenSSL mais recente.

    mkdir $HOME/build

    mkdir -p $HOME/local/ssl

    cd $HOME/build

  4. Baixe a versão mais recente do OpenSSL em https://www.openssl.org/source/.
  5. Baixe e descompacte o arquivo binário.
  6. Substitua openssl-1.1.1d.tar.gz pela versão mais recente do OpenSSL baixada na etapa 4.

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

    tar -zxf openssl-1.1.1d.tar.gz

  7. Use a ferramenta gcc para corrigir a versão e compilar o arquivo binário baixado.

    yum install patch make gcc -y

    Se você estiver usando uma versão diferente do OpenSSL-1.1.1d, talvez seja necessário alterar o diretório e os comandos usados, ou esse patch pode não funcionar corretamente.

  8. Execute os seguintes 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. Execute os seguintes comandos para compilar o arquivo enc.c do 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 a variável de ambiente LD_LIBRARY_PATH para garantir que as bibliotecas necessárias estejam disponíveis para OpenSSL. A versão mais recente do OpenSSL foi vinculada dinamicamente ao arquivo binário no diretório $HOME/local/ssl/lib/ e não pode ser executada diretamente no shell.
  11. Crie um script chamado openssl.sh para carregar o caminho $HOME/local/ssl/lib/ antes de executar o arquivo binário.

    cd $HOME/local/bin/

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

  12. Execute o seguinte comando para configurar um bit de execução no script:

    chmod 755 ./openssl.sh

  13. Execute o seguinte comando para iniciar a versão do OpenSSL corrigida:

    $HOME/local/bin/openssl.sh