web-dev-qa-db-ja.com

davfs-SSLハンドシェイクに失敗しました:SSLエラー:sslv3アラートハンドシェイクに失敗しました

Ubuntu 12.04マシンでhttpsを使用してリモートWebDAV(OwnCloud)をマウントしようとしています。

このコマンドを実行すると、ユーザー名とパスワードの入力を求められます

Sudo mount -t davfs -o uid=ne,gid=users https://example/owncloud/remote.php/webdav/ /mount/remote

その後、エラーが発生します

/sbin/mount.davfs:マウントに失敗しました。 SSLハンドシェイクに失敗しました:SSLエラー:sslv3アラートハンドシェイクに失敗しました

他のマシン(Androidを含む)はWebDAVSに正しく接続できます。

このエラーを防ぐにはどうすればよいですか?証明書はCloudFlareによって署名されますが、それが違いを生む場合は-しかし、それはOwnCloudインスタンスにアクセスする他のシステムに問題を引き起こさないようです。

curl -v https://example.comを実行すると、すべて正常に見える

* About to connect() to example.com port 443 (#0)
*   Trying 104.28.29.14... connected
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using ECDHE-ECDSA-AES128-SHA
* Server certificate:
*    subject: OU=Domain Control Validated; OU=PositiveSSL Multi-Domain; CN=sni29581.cloudflaressl.com
*    start date: 2014-10-26 00:00:00 GMT
*    expire date: 2015-09-30 23:59:59 GMT
*    subjectAltName: example.com matched
*    issuer: C=GB; ST=Greater Manchester; L=Salford; O=COMODO CA Limited; CN=COMODO ECC Domain Validation Secure Server CA 2
*    SSL certificate verify ok.
> GET / HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: example.com
> Accept: */*
> 
< HTTP/1.1 302 Moved Temporarily
< Server: cloudflare-nginx
< Date: Mon, 27 Oct 2014 11:30:08 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< Set-Cookie: __cfduid=da7fc86a1e00780f7eea162120e2c4fe51414409408265; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.example.com; HttpOnly
< Set-Cookie: DYNSRV=lin194; path=/
< CF-RAY: 17fe8f51aaa71365-LHR
< 
* Connection #0 to Host example.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):

私はopenssl s_client -Host example.com -port 443も試しましたが、それは私にVerify return code: 20 (unable to get local issuer certificate)を与えます

CONNECTED(00000003)
depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign Organization Validation CA - G2
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/C=US/ST=CA/L=San Francisco/O=CloudFlare, Inc./CN=ssl2000.cloudflare.com
   i:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Organization Validation CA - G2
 1 s:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Organization Validation CA - G2
   i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
(truncated)
bJLtKDaYbNmULxY=
-----END CERTIFICATE-----
subject=/C=US/ST=CA/L=San Francisco/O=CloudFlare, Inc./CN=ssl2000.cloudflare.com
issuer=/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Organization Validation CA - G2
---
No client certificate CA names sent
---
SSL handshake has read 3158 bytes and written 363 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.1
    Cipher    : ECDHE-RSA-AES128-SHA
    Session-ID: EAC9072E6FFBD3E7AEA20B6C4D57F229DCC887CFAB08C2D47C0A546318A794E0
    Session-ID-ctx: 
    Master-Key: 50ED2846908537665D348FCB07BB69ACEAD182F062F8235E5C7ED4958B4D446D70701E4C6876DE2DA06322BA090C46D5
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 64800 (seconds)
    TLS session ticket:
    0000 - f1 98 d3 dc 67 02 22 1f-24 88 b7 dc 1c 1a 13 6a   ....g.".$......j
    (truncated)
    Start Time: 1414409459
    Timeout   : 300 (sec)
    Verify return code: 20 (unable to get local issuer certificate)

最新のlibneonへの更新を試みました ですが、違いはありません。

更新

最新のOpenSSLにアップグレードしてから、別のエラーが表示されるようになりました

SSLハンドシェイクに失敗しました:SSLアラートを受信しました:ハンドシェイクに失敗しました

他で示唆されているように、openssl s_client -Host example.com -port 443 -ssl3を実行すると以下が返されます。

戻りコードを確認します:0(OK)

libneon 30.1をコンパイルしてインストールした

./configure --prefix=/usr --enable-shared --with-ssl=openssl --disable-static

しかし、エラーは続きます。

3
Terence Eden

右、私がやったことです!

libneon 30.1 -を取得して、ディレクトリに抽出します。

コンパイル

./configure --prefix=/usr --enable-shared --with-ssl=openssl --disable-static
make
Sudo make install

古いlibneon-gnutls.soを置き換える必要があります-そして、最終結果は次のようになります

/usr/lib/libneon-gnutls.so.27 -> /usr/lib/libneon.so.27
/usr/lib/libneon.so -> libneon.so.27.3.1
/usr/lib/libneon.so.27 -> libneon.so.27.3.1

まず、古いバージョンをバックアップします。 Sudo mv /usr/lib/libneon-gnutls.so.27 /usr/lib/libneon-gnutls.so.27.old

次に、/usr/lib/

Sudo ln -s /usr/lib/libneon.so.27.3.1 libneon.so.27 
Sudo ln -s /usr/lib/libneon-gnutls.so.27.3.1 libneon.so 
Sudo ln -s /usr/lib/libneon.so.27 libneon-gnutls.so.27

これですべてが機能しました!

1
Terence Eden