web-dev-qa-db-ja.com

DebianWheezyでのOpenSSLの問題

正確に何が起こっているのかわかりませんが、curlはスイッチを追加しないと安全なページを取得できないことに気づきました。

~# curl -v https://api.dreamhost.com
* About to connect() to api.dreamhost.com port 443 (#0)
*   Trying 75.119.208.14...
* connected
* Connected to api.dreamhost.com (75.119.208.14) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
(hangs for a minute)
* Unknown SSL protocol error in connection to api.dreamhost.com:443
* Closing connection #0
curl: (35) Unknown SSL protocol error in connection to api.dreamhost.com:443

ここで、-1(force tlsv1)または-3(force sslv3)を追加すると、curlは問題なく機能します。問題は、pythonスクリプトのように、他のプログラムにも同様の問題があるように見えることです。

Opensslを試してみると、curlのようにハングします

openssl s_client  -connect api.dreamhost.com:443
CONNECTED(00000003)
(HANGS)

write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 320 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

-tls1_2を使用しても同じことが起こりますが、-ssl3スイッチを使用すると機能します

追加データ:

OpenSSL> version
OpenSSL 1.0.1e 11 Feb 2013

これを修正してcurlまたはopensslをデフォルト設定で機能させる方法を知っている人はいますか?スイッチなしで両方のコマンドを完璧に実行できるDebianlennyを搭載した別のマシンがあります。

ありがとう!

-ロドリゴ

4
Rodrigo

このサイトを SSLLabs test に対して実行すると、 長いハンドシェイクに耐えられない であることがわかります。これは、OpenSSLのバージョンに確かに影響する問題です。

暗号リストのサイズを小さくすると、次のようになります。

openssl s_client -cipher RSA -connect api.dreamhost.com:443

curlには--ciphersオプションを使用できます。)

2
Bruno

同じ問題が発生していたので、先に進んでDreamhostにチケットを提出しました(上記の@Brunoの分析に基づく)。数週間かかりましたが、実際に修正しました。彼らがおそらく私を技術サポート地獄に置いたであろう他の会社。

1
MattPark

ca-certificatesパッケージが正しくインストールされていることを確認してください。インストールされている場合は、誤ってファイルを削除してしまった可能性があり、再インストールする必要があります。

Sudo apt-get install --reinstall ca-certificates
0
Michael Hampton