簡體   English   中英

android-android studio模擬器中的SSL問題,可以在手機上正常工作

[英]android - SSL problems in android studio emulator, works fine on phone

我有一個可以通過https調用網絡服務的應用程序。 當我在手機上運行apk時,效果很好。 但是,在模擬器中,所有通過SSLPOST請求均失敗,並顯示以下信息:

讀取錯誤: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'

我相信這是因為模擬器每次運行都會重置您的CA證書。

簽出有關在Android模擬器中設置持久性受信任CA的文章

請注意,棉花糖中CA證書的位置已更改,我將盡快更新一些附加信息

我建議您在運行時信任來自受SSL保護的服務器的證書。

這種方法與設備配置無關,並且對於電話和仿真器也適用。

我寫了小型圖書館

在我的博客文章中閱讀有關此主題的更多信息:

https://mklimek.github.io/trust-specific-certificate-on-jvm/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM