openssl / curlエラー:SSL23_GET_SERVER_HELLO:tlsv1アラートの内部エラー


9

Ubuntu 14.04から、opensslまたはcurlを使用していずれかのサーバーに接続すると、非常に奇妙な問題が発生します

実行中:

openssl s_client -connect ms.icometrix.com:443

与える:

CONNECTED(00000003)
140557262718624:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert
internal error:s23_clnt.c:770:

実行時の同様のエラー:

curl https://ms.icometrix.com
curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert
internal error

opensslバージョンの出力(クライアント/サーバー):

OpenSSL 1.0.1f 6 Jan 2014

dpkg -l opensslからのopensslの出力:

1.0.1f-1ubuntu2

面白いことに、Opensslの他のバージョンと接続すると問題が消えます。

  • Macから、OpenSSL 0.9.8zd 2015年1月8日、すべて大丈夫
  • CentOSから、OpenSSL 1.0.1e-fips 2013年2月11日、すべて問題ありません
  • Ubuntu 14.04の最新の安定版リリース、OpenSSL 1.0.2d 2015年7月9日、すべて問題ありません。

サーバー側からは、奇妙なことは何もありません。問題は、マシンでSSL3を無効にしたときに始まりました。

apt-getのビルドに問題があるのでは?

apt-cache showpkgによって提案された他のバージョンもテストしますが、問題は残っています...


このバグに遭遇したようです:bugs.launchpad.net/ubuntu/+source/openssl/+bug/861137。いくつかの回避策が記載されています。DOESのcurl --sslv3 https://ms.icometrix.com作品?
Jos

こんにちは、返信ありがとうございます。いいえ、サーバーでsslを無効にしたため、これは機能しません。さらに、実際には、curlやopensslは関係ありません。本当の問題は、このバージョンのopensslを使用するpythonからのリクエストを使用することです。ですから、何かアイデアがありましたら、お知らせください。さらに掘るつもりです。
cecemel 2015

回答:


4

これは、クライアントとサーバー間のECDHサポートの問題のようです。すべてのECDH暗号を除外すると、機能します。

openssl s_client -connect ms.icometrix.com:443 -cipher 'DEFAULT:!ECDH'

私の推測では、サーバーはクライアントから提供された25個のECC曲線のいくつかを鳴らしています。ブラウザーが提供する曲線はほとんどありません。OpenSSL 0.9.8はまだECCをサポートしていません。RedHat/ CentOSには、特許上の理由でデフォルトでECCを無効にする歴史があります。このバージョンにアクセスできないため、OpenSSL 1.0.2が機能する理由がわかりません。

すべてのディストリビューションが古いバージョンを保持するがセキュリティパッチを追加するため、OpenSSLバージョンを指定するだけでは通常十分ではないことに注意してください。代わりに、dpkg -l opensslどちらのシステムで1.0.1f-1ubuntu2.15が得られるかを確認してください。


thxそれはトリックをしました!私はdpkg -lからの出力で投稿を更新しました
cecemel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.