Atualização do Paypal OpenSSL 1.0.1

Atualização do Paypal OpenSSL 1.0.1

Estou tentando atualizar as bibliotecas openssl em um servidor OpenSuse 11.4 para que possam corresponder aos novos padrões de segurança do Paypal (https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1914&viewlocale=en_US).

Anteriormente eu tinha esta versão do openssl instalada:

openssl version
OpenSSL 1.0.0c 2 Dec 2010

Verifiquei se há uma atualização:

zypper update openssl
Loading repository data...
Warning: Repository 'Updates for openSUSE 11.4 11.4-0' appears to outdated. Consider using a different mirror or server.
Reading installed packages...
No update candidate for 'openssl-1.0.0c-18.42.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...

Como o zypper não conseguiu encontrar a nova versão do openssl, adicionei o repositório Evergreen:

sudo zypper ar --refresh -r http://download.opensuse.org/evergreen/11.4/openSUSE:Evergreen:11.4.repo
Adding repository 'Evergreen update repository for openSUSE 11.4 (standard)' [done]
Repository 'Evergreen update repository for openSUSE 11.4 (standard)' successfully added
Enabled: Yes
Autorefresh: Yes
URI: http://download.opensuse.org/repositories/openSUSE:/Evergreen:/11.4/standard/

Então fiz uma atualização dos repositórios:

zypper refresh
Repository 'Updates for openSUSE 11.4 11.4-0' is up to date.
Retrieving repository 'Evergreen update repository for openSUSE 11.4 (standard)' metadata [\]

New repository or package signing key received:
Key ID: 241B84B36A0F1588
Key Name: openSUSE:Evergreen OBS Project <openSUSE:[email protected]>
Key Fingerprint: D25EAF514D59C654B9BCE005241B84B36A0F1588
Key Created: Fri 15 May 2015 03:33:05 PM CEST
Key Expires: Sun 23 Jul 2017 03:33:05 PM CEST
Repository: Evergreen update repository for openSUSE 11.4 (standard)

Do you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r): a
Retrieving repository 'Evergreen update repository for openSUSE 11.4 (standard)' metadata [done]
Building repository 'Evergreen update repository for openSUSE 11.4 (standard)' cache [done]
Repository 'openSUSE-11.4-Non-Oss' is up to date.
Repository 'openSUSE-11.4-Oss' is up to date.
All repositories have been refreshed.

e finalmente a atualização do openssl:

zypper update openssl
Loading repository data...
Warning: Repository 'Updates for openSUSE 11.4 11.4-0' appears to outdated. Consider using a different mirror or server.
Warning: Repository 'Evergreen update repository for openSUSE 11.4 (standard)' appears to outdated. Consider using a different mirror or server.
Reading installed packages...
Resolving package dependencies...

The following package is going to be upgraded:
  openssl 

1 package to upgrade.
Overall download size: 541.0 KiB. After the operation, additional 77.0 KiB will be used.
Continue? [y/n/?] (y): y
Retrieving package openssl-1.0.1p-74.1.x86_64 (1/1), 541.0 KiB (1.3 MiB unpacked)
Retrieving: openssl-1.0.1p-74.1.x86_64.rpm [done (844.4 KiB/s)]
Installing: openssl-1.0.1p-74.1 [done]

Eu reiniciei o apache:

/etc/init.d/apache2 restart
Syntax OK
Shutting down httpd2 (waiting for all children to terminate)                                                              done
Starting httpd2 (prefork)

E verifiquei a conformidade com o Paypal:

php -r '$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://tlstest.paypal.com/"); var_dump(curl_exec($ch)); var_dump(curl_error($ch));'
bool(false)
string(67) "Unknown SSL protocol error in connection to tlstest.paypal.com:443 "

A versão do openssl agora está me mostrando "(Biblioteca: OpenSSL 1.0.0c 2 de dezembro de 2010)":

openssl version -a
OpenSSL 1.0.1p 9 Jul 2015 (Library: OpenSSL 1.0.0c 2 Dec 2010)
built on: 2012-05-23 05:01:20.000000000 +0000
platform: linux-x86_64
options:  bn(64,64) rc4(1x,char) des(idx,cisc,16,int) blowfish(idx) 
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wa,--noexecstack -fomit-frame-pointer -fno-strict-aliasing -DTERMIO -DPURIFY -Wall -fstack-protector  -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM
OPENSSLDIR: "/etc/ssl"

Parece que o openssl foi atualizado, mas ainda usa a antiga biblioteca 1.0.0... alguma ideia de como consertar isso para que o sistema seja compatível com os padrões de segurança mais recentes do Paypal de 2016?

Responder1

Acho que o problema é que a instalação do Apache não consegue vincular as bibliotecas compartilhadas da sua nova instalação do OpenSSL. Execute o comando ldd /usr/local/apache/modules/mod_ssl.so(com o caminho apropriado para seu mod_ssl.so). Você verá que mod_ssl.so não está vinculado às bibliotecas em/usr/local/ssl/lib

Você tem algumas opções para corrigir o problema:

Opção nº 1 - Link nas bibliotecas:

Abra /etc/ld.so.conf.d/local.confpara edição e adicione a seguinte linha:/usr/local/openssl/lib

Recompile o Apache (lembre-se de make clean) e ele deverá funcionar.

Se isso não funcionar. Você também pode tentar especificar LDFLAGSdiretamente com seu configurecomando:

LDFLAGS=-L/usr/local/ssl/lib \ ./configure --with-included-apr --prefix=/usr/local/apache2 --enable-so     
--enable-rewrite --with-ssl=/usr/local/ssl --enable-ssl=shared
--enable-deflate --enable-expires --enable-headers

Opção nº 2 - Atualizar o sistema OpenSSL:

Reinstale o OpenSSL com a linha de configuração./config --prefix=/usr --openssldir=/usr/local/openssl shared

Quando o prefixo não é especificado na sua linha de configuração, o instalador do OpenSSL será padronizado como /usr/local/ssl.

Instruções de instalação rápida:

cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.0.2-latest.tar.gz
tar -zxf openssl-1.0.2*
cd openssl-1.0.2*
./config --prefix=/usr --openssldir=/usr/local/openssl shared
make
make test
make install

informação relacionada