使用HTTP触发器的Firebase云功能会引发SSL异常

时间:2017-05-01 13:53:01

标签: android ssl firebase google-cloud-functions

我使用Cloud Functions for Firebase并为客户端创建了可消耗的API端点。端点在Web和iOS客户端上运行良好,但是,在Android上,我遇到SSL错误,但有以下异常:

javax.net.ssl.SSLHandshakeException: Connection closed by peer

我尝试使用来自终端的openssl连接相同的内容,但失败并出现以下错误:

命令:

openssl s_client -connect us-central1-android-clean-architectu-38a86.cloudfunctions.net:443

响应:

CONNECTED(00000003)
6233:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59.60.1/src/ssl/s23_lib.c:185:

我的假设是Firebase可能正在使用自签名服务器证书,这会导致"未知证书颁发机构"。根据Android的SSL文档,可以通过创建我自己的TrustManager并信任证书来解决此问题。虽然我还没有做到这一点,但我想知道是否存在另一种灵魂。 (是的,我的假设可能是错的)

还有其他人遇到过这个问题,并知道为什么会这样吗?对此有何看法?

修改

根据要求复制的步骤(问题被投票结束),这里有你如何重现它

在Android上,使用任何网络库(我使用Loopj),对以下API发出GET请求 - https://us-central1-android-clean-architectu-38a86.cloudfunctions.net/helloWorld

响应将导致javax.net.ssl.SSLHandshakeException: Connection closed by peer异常失败。 Android API 19,22,23引发异常,但是,它适用于Android API 25。

假设2 - 这可能是TLS 1.2问题吗?

0 个答案:

没有答案