In an Android app, I fetch content from a https url; in order to avoid SSL 
cert verification errors, I add the SSL public key to my keystore, which 
then resides in my res/raw folder of the app. Following the instructions as 
on http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html, 
which all works fine so far.

..until I activate Proguard and obfuscation. With Proguard activated, I am 
getting the following error,

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)

which I don't quite understand. Why would the identification of the url 
change in a way that it's also fetching the /<ipAddress> together with the 
domain name, whereas it works fine without Proguard obfuscation.

As the httpClient for fetching the https content, I use sources as in 
MyHttpClient at:
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 *;
}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to