2016-11-10 24 views
0

私のPHPプログラムは数日前まで正常に動作しました。私は突然、 "SSLルーチン:SSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイク失敗"というエラーが発生しました。私のPHPプログラムではcurlを使用しています。私はネット上で検索し、私のopensslが古すぎて(0.9.8e)、TLSをサポートしていない可能性があることを発見しました。OpenSSLをPHPでアップグレードした後、OpenSSLが更新されない

私は「yum update openssl」を試しましたが、Opensslはアップグレードされておらず、まだ0.9.8eであるため役に立たないです。そこで、ネットから新しいバージョン(1.0.2j)をダウンロードしてインストールしました。そして今、 "openssl version"コマンドで新しいバージョン番号を表示しますが、それでもphpinfo()と "curl -V"によって古いバージョン番号が表示されます。もちろん、PHPプログラムの実行中にSSLエラーが表示されます。

私は非常に新しいサーバー設定です。 opensslのバージョンをphpやcurlで更新するにはどうすればよいですか?

+0

サーバーの問題でプログラミングしていません。 –

+0

古いSSLバージョンに依存するすべてのバイナリを再コンパイルする必要があります。 OpenSSLの残りの部分が古くて、サポートされていない可能性があるので、サーバーを更新する方が簡単かもしれません。 –

+0

サーバーのアップデートは私の選択肢ではないようです。どのように私はPHPとカールを再コンパイルできますか? – Frankie

答えて

0

sslがコンパイルされているので、php自体を更新する必要があります。システム上のlibsslはphpでは使用されていません。 php-curlパッケージにカプセル化することもできます。

+0

phpを5.4から5.5にアップグレードしましたが、phpinfo()に表示されているcurlのopensslとSSL verionのバージョンは変更されていません。 php-curlパッケージをどのように更新できますか? – Frankie

0

最後にOpenSSL、cUrl、PHPの最新バージョンをダウンロードしてインストールし、OpenSSLとPHP用の新しいパスのconfigureを設定することで問題を解決しました。

関連する問題