В приложении для Android я получаю контент с URL-адреса https; чтобы избежать ошибок проверки SSL-сертификата, я добавляю открытый ключ SSL в свое хранилище ключей, которое затем находится в моей папке res / raw приложения.
Следуя инструкциям, приведенным на http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html,, который до сих пор работает нормально.
.. пока я не активирую Proguard и не запутываю. При активированной Proguard я получаю следующую ошибку
ERROR/Login(4401): Could not login.
javax.net.ssl.SSLException: hostname in certificate didn't match: <store.mydomain.com/185.165.192.15> != <store.mydomain.com> OR <store.mydomain.com>
at xyz.fd.a(Unknown Source)
что я не совсем понимаю. Почему идентификация URL-адреса изменяется таким образом, что он также извлекает /<ipAddress>
вместе с доменным именем, тогда как он прекрасно работает без запутывания Proguard.
В качестве httpClient для извлечения содержимого https я использую источники, как в MyHttpClient по адресу:
http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html
proguard.cfg:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep class * extends DefaultHttpClient
-ignorewarnings
-repackageclasses 'xyz'
-allowaccessmodification
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
Обновление:
Также удаление -repackageclasses 'xyz' и -allowaccessmodification не имеет значения, та же ошибка.