Bonjour,

J'ai un problème que je n'arrive pas à résoudre.

J'ai une appli Android qui fait un post Https via les classes Apache de base.

genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
HttpClient client = new DefaultHttpClient();
puis HttpPost post suivi d'un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
traditionnel client.execute(post)
Après mise au point ça fonctionne parfaitement sur mon Nexus Android 4.0.2.

J'ai decidé de voir ce que ça donnait sur Android 2.3 Nexus S ou Galaxy Tab et là
paf je me prend une bonne exception SSL :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
W/System.err(29003): javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
W/System.err(29003):    at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:258)
W/System.err(29003):    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
W/System.err(29003):    at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
W/System.err(29003):    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177)
W/System.err(29003):    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
W/System.err(29003):    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
W/System.err(29003):    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)
W/System.err(29003):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
W/System.err(29003):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
Alors bien entendu j'ai testé de charger un keystore avec la chaine de certificat, via
une SSLSocketFactory mais ça ne change rien ! D'ailleurs les certificats ont l'air normaux
ainsi que la chaîne (Entrust).

J'en deduis donc, que c'est plutôt un problème de handshake (genre paramétrage du
client) car sous ICS 4.0.2 ça fonctionne.

Avez-vous une idée de piste ?

J'ai mis le topic de base sous Android car c'est sur cette plate-forme qu'est mon
problème mais bon peut être que d'autres ont eu ce problème également ?

Merci