chi*_*NUT 8 java apache ssl android android-studio
我有一个应用程序通过https调用Web服务.当我在手机上运行apk时,效果很好.但是,在模拟器中,所有POST请求SSL都失败了:
读错误:ssl = 0xb402be00:SSL库失败,通常是协议错误错误:100c50bf:SSL例程:ssl3_read_bytes:NO_RENEGOTIATION(external/boringssl/src/ssl/s3_pkt.c:852 0xabf7fcd7:0x00000000)
在我们服务器上的访问日志中,每当模拟器尝试访问Web服务时,它都会报告403(禁止),因为模拟器没有与我们的服务器正确握手.在apache的错误日志中有很多这样的行
[2015年8月20日12:21:21] [错误] [客户端xxx.xxx.xxx.xxx]重新协商握手失败:客户端不接受!?
Apache实际上添加了"!?" 所以它看起来像一个严重意外的错误.
在我的IDE中,我勾选了"自动接受不受信任的证书"的选项,但这没有任何区别.
我已经在网上看到了解决android中各种SSL问题的解决方案,但是,它们似乎都是手机本身有问题,需要修改代码.由于它在手机上运行良好,似乎这是一个Android Studio问题,我应该能够通过配置设置来纠正这个问题.或者也许我必须在apache中做点什么?
结论:如何让我的应用程序与Android Studio中的模拟器中的SSL Web服务进行通信?
使用Studio 1.3.1,Java 1.7.0_65,
compileSdkVersion 21
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.bla.bla"
minSdkVersion 14
targetSdkVersion 19
multiDexEnabled true
versionCode 12
versionName '1.2.0.8'
Run Code Online (Sandbox Code Playgroud)
我相信这是因为模拟器每次运行时都会重置您的 CA 证书。
查看这篇关于在 Android 模拟器中设置持久可信 CA 的文章
请注意,Marshmallow 中的 CA 证书位置已更改,我将尽快更新一些附加信息
| 归档时间: |
|
| 查看次数: |
3850 次 |
| 最近记录: |