[英]android - SSL problems in android studio emulator, works fine on phone
我有一個可以通過https調用網絡服務的應用程序。 當我在手機上運行apk時,效果很好。 但是,在模擬器中,所有通過SSL
的POST
請求均失敗,並顯示以下信息:
讀取錯誤:ssl = 0xb402be00:SSL庫失敗,通常是協議錯誤錯誤:100c50bf:SSL例程:ssl3_read_bytes:NO_RENEGOTIATION(外部/無聊的sl / 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'
我建議您在運行時信任來自受SSL保護的服務器的證書。
這種方法與設備配置無關,並且對於電話和仿真器也適用。
我寫了小型圖書館 。
在我的博客文章中閱讀有關此主題的更多信息:
https://mklimek.github.io/trust-specific-certificate-on-jvm/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.