OpenSSL é uma biblioteca criptográfica amplamente utilizada que implementa os protocolos SSL e TLS para comunicação segura através de redes de computadores. OpenSSL é usada por muitos programas como Apache Web server, PHP, Postfix e muitos outros. OpenSSL fornece suporte a vários algoritmos criptográficos como cifras (AES, Blowfish, DES, IDEA etc.), funções criptográficas de hash (MD5, MD4, SHA-1, SHA-2 etc.) e criptografia de chave pública (RSA, DSA, Diffie-Hellman key exchange).
Neste tutorial, mostrarei passo a passo como instalar a última versão estável do OpenSSL a partir do código fonte no Ubuntu 18.04 e servidores CentOS 7.6.
O que vamos fazer?
- Instalar Dependências
- Download OpenSSL Source Code
- Instalar OpenSSL
- Compilar e Instale OpenSSL
- Configure Link Libraries
- Configure OpenSSL Binary
- Teste
Passo 1 – Instalar Dependências
O primeiro passo, antes de podermos compilar a biblioteca OpenSSL a partir do código fonte, é instalar algumas dependências de pacotes incluindo o pacote ‘build-essential’ no Ubuntu, ou o pacote ‘Development Tools’ no CentOS.
No Ubuntu
Atualizar o repositório Ubuntu e instalar dependências de pacotes para compilação de software usando o comando apt abaixo.
sudo apt update
sudo apt install build-essential checkinstall zlib1g-dev -y
No CentOS
Instalar as ‘Ferramentas de Desenvolvimento’ e algumas bibliotecas de pacotes usando o comando yum.
yum group install 'Development Tools'
yum install perl-core zlib-devel -y
Após a instalação estar completa, vá para o próximo passo.
Passo 2 – Download OpenSSL
Neste tutorial, vamos instalar a última versão estável do OpenSSL – OpenSSL 1.0.2o. Você pode baixar o código fonte do site OpenSSL.
Vá para o diretório ‘/usr/local/src’ e baixe o código fonte do OpenSSL usando wget.
cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
Agora extraia o arquivo openssl.tar.gz, e vá para o diretório ‘openssl’.
tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
O código fonte do OpenSSL foi baixado.
Passo 3 – Instalar OpenSSL
Antes de instalar a versão personalizada do OpenSSL no sistema, vamos verificar a versão instalada usando o comando abaixo.
openssl version -a
Below é o meu resultado no Ubuntu:
E este é no CentOS:
Substituiremos a versão ‘1.1.0g’ pela última versão estável 1.0.2o.
Instalaremos a nova versão do OpenSSL no diretório específico ‘/usr/local/ssl’, e então habilitaremos as bibliotecas de links do OpenSSL, e configuraremos o novo PATH binário para OpenSSL.
Instalar e Compilar OpenSSL
Vá para o diretório ‘/usr/local/src/openssl’ do OpenSSL baixado.
cd /usr/local/src/openssl-1.0.2o
Configurar e compilar o OpenSSL com os comandos abaixo.
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test
Espere pelo processo de compilação do OpenSSL.
Nota:
- –prefixar e –openssldir = Definir o caminho de saída do OpenSSL.
- shared = forçar a criação de uma biblioteca compartilhada.
- zlib = habilita a compressão usando a biblioteca zlib.
Quando o processo de compilação estiver completo, instale o OpenSSL usando o comando abaixo.
make install
OpenSSL está instalado no diretório ‘/usr/local/ssl’.
Configure Link Libraries
Next, vamos configurar as bibliotecas compartilhadas para OpenSSL. O novo binário OpenSSL irá carregar arquivos de biblioteca do diretório ‘/usr/local/ssl/lib’.
Vá para o diretório ‘/etc/ld.so.conf.d’ e crie o novo arquivo de configuração ‘openssl-1.0.2o.conf’.
cd /etc/ld.so.conf.d/
vim openssl-1.0.2o.conf
Colar o diretório caminho da biblioteca openssl.
/usr/local/ssl/lib
Guardar e sair.
Recarregar agora o link dinâmico usando o comando abaixo.
sudo ldconfig -v
E verá que as bibliotecas OpenSSL no directório ‘/usr/local/ssl/lib’ foi carregado.
Ubuntu:
CentOS:
Configurar Binário OpenSSL
Substituiremos o binário openssl padrão ‘/usr/bin/openssl ou /bin/openssl’ pela nova versão ‘/usr/local/ssl/bin/openssl’.
No Ubuntu 18.04 LTS
Backup dos arquivos binários.
mv /usr/bin/c_rehash /usr/bin/c_rehash.BEKUP
mv /usr/bin/openssl /usr/bin/openssl.BEKUP
Editar o arquivo ‘/etc/environment’ usando vim.
vim /etc/environment
Agora adicione o novo diretório binário OpenSSL como abaixo
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
Salvar e sair.
Recarregar o arquivo de ambiente e testar o novo PATH binário atualizado.
source /etc/environment
echo $PATH
Agora verifique novamente o arquivo binário OpenSSL.
which openssl
Terá o resultado como abaixo.
O caminho binário do OpenSSL para Ubuntu foi atualizado.
No CentOS 7.6
Backup dos arquivos binários CentOS OpenSSL.
mv /bin/openssl /bin/openssl.BEKUP
Criar novos arquivos de ambiente para OpenSSL.
vim /etc/profile.d/openssl.sh
Configuração de pasta abaixo.
#Set OPENSSL_PATHOPENSSL_PATH="/usr/local/ssl/bin"export OPENSSL_PATHPATH=$PATH:$OPENSSL_PATHexport PATH
Salvar e sair.
Faça o arquivo openssl.sh executável.
chmod +x /etc/profile.d/openssl.sh
Carregar o ambiente OpenSSL e verificar o diretório PATH bin usando os comandos abaixo.
source /etc/profile.d/openssl.sh
echo $PATH
Agora verifique o arquivo OpenSSL.
which openssl
Terá o resultado como abaixo.
O caminho binário para OpenSSL no CentOS foi atualizado.
Passo 4 – Testando
Teste a nova versão do OpenSSL usando o seguinte comando.
openssl version -a
O resultado no Ubuntu.
Resultado no CentOS.