SSLPeerUnverifiedException: No peer certificate

Hallo zusammen,

ich versuche momentan per android-xmlrpc aus einer Android App auf meinen Raspberry Pi zuzugreifen, auf dem Hibiscus läuft.
Sobald ich allerdings versuche eine Methode aufzurufen bekomme ich folgende Exception:

javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
[spoiler]
09-29 13:11:11.940: WARN/System.err(31413): javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
09-29 13:11:11.940: WARN/System.err(31413): at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)
09-29 13:11:11.950: WARN/System.err(31413): at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
09-29 13:11:11.950: WARN/System.err(31413): at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
09-29 13:11:11.950: WARN/System.err(31413): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
09-29 13:11:11.950: WARN/System.err(31413): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
09-29 13:11:11.950: WARN/System.err(31413): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
09-29 13:11:11.950: WARN/System.err(31413): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
09-29 13:11:11.950: WARN/System.err(31413): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
09-29 13:11:11.950: WARN/System.err(31413): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
09-29 13:11:11.950: WARN/System.err(31413): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
09-29 13:11:11.950: WARN/System.err(31413): at org.xmlrpc.android.XMLRPCClient.callEx(XMLRPCClient.java:178)
09-29 13:11:11.960: WARN/System.err(31413): at org.xmlrpc.android.XMLRPCClient.call(XMLRPCClient.java:266)
09-29 13:11:11.960: WARN/System.err(31413): at com.googlecode.hibiscusapp.services.SynchronizationTask.doInBackground(SynchronizationTask.java:28)
09-29 13:11:11.960: WARN/System.err(31413): at com.googlecode.hibiscusapp.services.SynchronizationTask.doInBackground(SynchronizationTask.java:20)
09-29 13:11:11.960: WARN/System.err(31413): at android.os.AsyncTask$2.call(AsyncTask.java:287)
09-29 13:11:11.960: WARN/System.err(31413): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
09-29 13:11:11.960: WARN/System.err(31413): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
09-29 13:11:11.960: WARN/System.err(31413): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
09-29 13:11:11.960: WARN/System.err(31413): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
09-29 13:11:11.960: WARN/System.err(31413): at java.lang.Thread.run(Thread.java:856)
09-29 13:11:11.960: WARN/System.err(31413): org.xmlrpc.android.XMLRPCException: javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
09-29 13:11:11.960: WARN/System.err(31413): at org.xmlrpc.android.XMLRPCClient.callEx(XMLRPCClient.java:237)
09-29 13:11:11.970: WARN/System.err(31413): at org.xmlrpc.android.XMLRPCClient.call(XMLRPCClient.java:266)
09-29 13:11:11.970: WARN/System.err(31413): at com.googlecode.hibiscusapp.services.SynchronizationTask.doInBackground(SynchronizationTask.java:28)
09-29 13:11:11.970: WARN/System.err(31413): at com.googlecode.hibiscusapp.services.SynchronizationTask.doInBackground(SynchronizationTask.java:20)
09-29 13:11:11.970: WARN/System.err(31413): at android.os.AsyncTask$2.call(AsyncTask.java:287)
09-29 13:11:11.970: WARN/System.err(31413): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
09-29 13:11:11.970: WARN/System.err(31413): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
09-29 13:11:11.970: WARN/System.err(31413): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
09-29 13:11:11.970: WARN/System.err(31413): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
09-29 13:11:11.970: WARN/System.err(31413): at java.lang.Thread.run(Thread.java:856)
09-29 13:11:11.970: WARN/System.err(31413): Caused by: javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
09-29 13:11:11.970: WARN/System.err(31413): at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)
09-29 13:11:11.980: WARN/System.err(31413): at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
09-29 13:11:11.980: WARN/System.err(31413): at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
09-29 13:11:11.980: WARN/System.err(31413): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
09-29 13:11:11.980: WARN/System.err(31413): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
09-29 13:11:11.980: WARN/System.err(31413): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
09-29 13:11:11.980: WARN/System.err(31413): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
09-29 13:11:11.980: WARN/System.err(31413): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
09-29 13:11:11.980: WARN/System.err(31413): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
09-29 13:11:11.980: WARN/System.err(31413): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
09-29 13:11:11.980: WARN/System.err(31413): at org.xmlrpc.android.XMLRPCClient.callEx(XMLRPCClient.java:178)
09-29 13:11:11.980: WARN/System.err(31413): … 9 more
[/spoiler]

Es gibt in den Einstellungen von Hibiscus ein Setting “Den Aussteller-Zertifikaten von Java vertrauen”, der Haken ist da auch gesetzt.
Hat jemand eine Ahnung was das Problem sein könnte? Muss ich für mein Smartphone, oder für die App noch irgendwo ein Zertifikat erstellen und hinterlegen? Oder ist das Problem vielleicht ein anderes?

Du musst der App beibrigen deinem Raspberry Pi zu vertrauen. Es schmeißt ja die App und nicht den Service auf.

In diesem Stack Overflow Post wird erklärt wie du eine HTTPS-Verbindung mit android-xmlrpc zum Laufen bekommst.

Dank dir für den Link, ich werde das später mal testen.