7

3 日以来、paypal サンドボックスに接続できません。SSLv3 のサポートを無効にしている可能性があることがわかりました。そこで、次のように設定して、curl Request の SSL バージョンを変更しようとしました。

curl_setopt($curl, CURLOPT_SSLVERSION,1); # 1 = TLSv1

しかし、それでも同じエラーが表示されます:

error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

スクリプトがまだ SSLv3 を使用している理由は何ですか?

私はphp 5.5と次のcurlバージョンを使用しています(現在、ホスティング業者[マネージドホスティング1&1]で新しいバージョンにアップグレードするように依頼しています)

curl 7.21.0 (i486-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6 プロトコル: dict ファイル ftp ftps http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp 機能: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

4

3 に答える 3

6

問題は、PayPal が SSLv3、TLS 1.0、および TLS 1.1 のサポートを中止し、現在は TLS 1.2 のみをサポートしていますが、OpenSSL バージョンの cURL は ( 0.9.8o) で構築されており、TLS をサポートしていません。

この時点でできることは、ホストが OpenSSL、cURL、および PHP を新しい (1.0+) バージョンの OpenSSL に更新できることを願うことだけです。

現状では、あなたの cURL クライアントは PayPal が要求する TLS に対応しておらず、OpenSSL を更新する以外にそれを回避する方法はありません。

于 2016-02-01T17:25:22.677 に答える
1

完璧です。LibCurl で NSS の代わりに OpenSSL を使用するようにしたかったので、OpenSSL を使用するように php libcurl を微調整するのに役立ちました。

私のCentos7 PHP 5.6は使用していました

php -r "print_r(curl_version());" | grep ssl_version
[ssl_version_number] => 0
[ssl_version] => NSS/3.19.1 Basic ECC

上記の修正の後、これが私が望んでいたものです。

php -r "print_r(curl_version());" | grep ssl_version
[ssl_version_number] => 0
[ssl_version] => OpenSSL/1.0.1f

PHP 5.6.17 を使用して Centos7 で使用した改訂済みスクリプトを次に示します。

#!/bin/bash
PHP_VERSION=$(rpm -qa --queryformat '%{version}' php56)
CURL_VERSION=$(curl -V|head -1|awk '{print $2}')
wget --no-check-certificate http://mirror.cogentco.com/pub/php/php-5.6.17.tar.bz2 -O /tmp/php-${PHP_VERSION}.tar.bz2
wget --no-check-certificate http://curl.haxx.se/download/curl-${CURL_VERSION}.tar.gz -O /tmp/curl-${CURL_VERSION}.tar.gz

cd /tmp; tar xjf php-${PHP_VERSION}.tar.bz2
cd /tmp; tar xzf curl-${CURL_VERSION}.tar.gz

cd curl-${CURL_VERSION}
./configure
make
make install

cd /tmp; rm -rf curl-${CURL_VERSION}*

sleep 2

cd /tmp/php-${PHP_VERSION}/ext/curl/
phpize
./configure
make
make install

cd /tmp; rm -rf php-${PHP_VERSION}*
于 2016-05-20T11:29:37.843 に答える