
Ich versuche, die OpenSSL-Bibliotheken auf einem OpenSuse 11.4-Server zu aktualisieren, damit sie den neuen Paypal-Sicherheitsstandards entsprechen (https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1914&viewlocale=en_US).
Zuvor hatte ich diese OpenSSL-Version installiert:
openssl version
OpenSSL 1.0.0c 2 Dec 2010
Ich habe nach einem Update gesucht:
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...
Da Zypper die neue OpenSSL-Version nicht finden konnte, habe ich das Evergreen-Repo hinzugefügt:
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/
Dann habe ich eine Aktualisierung der Repositorien durchgeführt:
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.
und zum Schluss das OpenSSL-Update:
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]
Ich habe Apache neu gestartet:
/etc/init.d/apache2 restart
Syntax OK
Shutting down httpd2 (waiting for all children to terminate) done
Starting httpd2 (prefork)
Und die Konformität mit Paypal überprüft:
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 "
Die OpenSSL-Version zeigt mir jetzt „(Bibliothek: OpenSSL 1.0.0c 2. Dezember 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"
Es scheint, dass OpenSSL aktualisiert wurde, aber immer noch die alte 1.0.0-Bibliothek verwendet. Irgendeine Idee, wie man das beheben kann, damit das System den neuesten Paypal-Sicherheitsstandards von 2016 entspricht?
Antwort1
Ich denke, das Problem liegt darin, dass Ihre Apache-Installation nicht in der Lage ist, die gemeinsam genutzten Bibliotheken Ihrer neuen OpenSSL-Installation zu verknüpfen. Führen Sie den Befehl aus ldd /usr/local/apache/modules/mod_ssl.so
(mit dem entsprechenden Pfad zu Ihrem mod_ssl.so). Sie werden sehen, dass mod_ssl.so nicht mit den Bibliotheken in verknüpft ist./usr/local/ssl/lib
Sie haben mehrere Möglichkeiten, das Problem zu beheben:
Option Nr. 1 – Verknüpfung in den Bibliotheken:
Öffnen Sie es /etc/ld.so.conf.d/local.conf
zum Bearbeiten und fügen Sie die folgende Zeile hinzu:/usr/local/openssl/lib
Kompilieren Sie Apache neu (denken Sie daran make clean
), dann sollte es funktionieren.
Wenn das nicht funktioniert, können Sie auch versuchen, Folgendes LDFLAGS
direkt in Ihrem configure
Befehl anzugeben:
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
Option Nr. 2 – Aktualisieren Sie das System-OpenSSL:
Installieren Sie OpenSSL erneut mit der Konfigurationszeile./config --prefix=/usr --openssldir=/usr/local/openssl shared
Wenn in Ihrer Konfigurationszeile das Präfix nicht angegeben ist, verwendet das OpenSSL-Installationsprogramm standardmäßig /usr/local/ssl
.
Anweisungen zur schnellen Installation:
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