【问题标题】:Error Using Cordova's FileTransfer API, When Uploading to a TLS Environment上传到 TLS 环境时使用 Cordova 的 FileTransfer API 时出错
【发布时间】:2015-02-07 19:06:43
【问题描述】:

当我尝试使用 Cordova 的 FileTransfer API 上传图像时,adb logcat(在 Android 上测试)中出现以下错误。服务器正在使用 TLS v1.2。

D/FileTransfer(26152): chunkedMode: true
D/FileTransfer(26152): headers: null
D/FileTransfer(26152): objectId: 5
D/FileTransfer(26152): httpMethod: POST
D/FileTransfer(26152): Content Length: 10467
W/FileTransfer(26152): Error getting HTTP status code from connection.
W/FileTransfer(26152): javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x7c1a8ae0: Failure in SSL library, usually a protocol error
W/FileTransfer(26152): error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:741 0x7278bd74:0x00000000)
W/FileTransfer(26152):  at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:448)
W/FileTransfer(26152):  at com.squareup.okhttp.Connection.upgradeToTls(Connection.java:140)
W/FileTransfer(26152):  at com.squareup.okhttp.Connection.connect(Connection.java:105)
W/FileTransfer(26152):  at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:294)
W/FileTransfer(26152):  at com.squareup.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
W/FileTransfer(26152):  at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
W/FileTransfer(26152):  at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:350)
W/FileTransfer(26152):  at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:90)
W/FileTransfer(26152):  at com.squareup.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:162)
W/FileTransfer(26152):  at org.apache.cordova.filetransfer.FileTransfer$1.run(FileTransfer.java:382)
W/FileTransfer(26152):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/FileTransfer(26152):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/FileTransfer(26152):  at java.lang.Thread.run(Thread.java:841)
W/FileTransfer(26152): Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x7c1a8ae0: Failure in SSL library, usually a protocol error
W/FileTransfer(26152): error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:741 0x7278bd74:0x00000000)
W/FileTransfer(26152):  at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
W/FileTransfer(26152):  at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:405)

【问题讨论】:

    标签: android cordova ssl cordova-plugins


    【解决方案1】:

    似乎必须为默认的 HTTPS 端口 443 设置 SSL 证书,并且必须在没有指定任何资源的情况下访问域(https://example.com 必须是可访问的,而不仅仅是一些 https://example.com/some-resource)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-24
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      • 2018-09-28
      • 2019-05-10
      • 1970-01-01
      相关资源
      最近更新 更多