MaxDev
Lt. Commander
- Registriert
- Okt. 2009
- Beiträge
- 2.033
Guten Abend liebe Leute,
ich programmiere gerade eine Android-App für meine Schule, die den Vertretungsplan darstellen soll.
Importiert werden die Daten aus HTML Tabellen, die auf dem Schulserver liegen. Das klappt auch alles, sofern ich die HTML Datei vorher auf meinen eigenen Server geladen habe.
Grund dafür ist, dass unser Schulserver ein HTTPS Zertifikat nutzt, was damals auf Grund von Kostengründen selber signiert wurde. Die Browser mögen das natürlich nicht und vermelden Warnungen (aus gutem Grund), die per Klick ignoniert werden können.
Ich bekomme es allerdings nicht hin, jsoup zu überreden, das fehlerhafte Zertifikat zu ignorieren.
Link zur Seite der Klasse 5a (Beispiel): https://service.copernicus-gymnasium.de/vertretungsplan/schueler/w/13/w00001.htm
(Fehlerhaftes Zertifikat, dass ignoriert werden soll)
Ich habe mir das Zertifikat heruntergeladen und zu einer .jks Datei konvertiert (Wie hier beschrieben).
Diese Datei liegt nun im res Ordner der App:
In meiner Mainactivity sieht das ganze so aus:
Damit möchte ich bezwecken, dass das Zertifikat als vertrauenswürdig angesehen wird, was allerdings nicht klappt
LogCat dazu:
Ich komme nicht wirklich weiter. Könnt ihr mir vielleicht einen Tipp geben, wie ich das ganze hinbekomme?
Wenn Ihr noch weitere Daten braucht, bitte melden!
Danke!
Max
ich programmiere gerade eine Android-App für meine Schule, die den Vertretungsplan darstellen soll.
Importiert werden die Daten aus HTML Tabellen, die auf dem Schulserver liegen. Das klappt auch alles, sofern ich die HTML Datei vorher auf meinen eigenen Server geladen habe.
Grund dafür ist, dass unser Schulserver ein HTTPS Zertifikat nutzt, was damals auf Grund von Kostengründen selber signiert wurde. Die Browser mögen das natürlich nicht und vermelden Warnungen (aus gutem Grund), die per Klick ignoniert werden können.
Ich bekomme es allerdings nicht hin, jsoup zu überreden, das fehlerhafte Zertifikat zu ignorieren.
Link zur Seite der Klasse 5a (Beispiel): https://service.copernicus-gymnasium.de/vertretungsplan/schueler/w/13/w00001.htm
(Fehlerhaftes Zertifikat, dass ignoriert werden soll)
Ich habe mir das Zertifikat heruntergeladen und zu einer .jks Datei konvertiert (Wie hier beschrieben).
Diese Datei liegt nun im res Ordner der App:
In meiner Mainactivity sieht das ganze so aus:
Code:
// URL Address
String url = "https://service.copernicus-gymnasium.de/vertretungsplan/schueler/w/13/w00001.htm";
protected Void doInBackground(Void... params) {
// Create an array
arraylist = new ArrayList<HashMap<String, String>>();
try {
// Connect to the Website URL
System.setProperty("javax.net.ssl.trustStore", "/res/copgym.jks");
Document doc = Jsoup.connect(url).get();
// Identify Table Class "Vertretung"
for (Element table : doc.select("table")) {
.................
Damit möchte ich bezwecken, dass das Zertifikat als vertrauenswürdig angesehen wird, was allerdings nicht klappt
LogCat dazu:
Code:
03-29 23:19:01.220: I/LoadedApk(30206): No resource references to update in package common
03-29 23:19:01.230: I/LoadedApk(30206): No resource references to update in package com.zyxxeil.elixium.ui
03-29 23:19:01.230: I/LoadedApk(30206): No resource references to update in package com.zyxxeil.elixium.ui
03-29 23:19:01.330: D/OpenGLRenderer(30206): Render dirty regions requested: true
03-29 23:19:01.340: D/Atlas(30206): Validating map...
03-29 23:19:01.410: I/Adreno-EGL(30206): <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BF.1.1_RB1.04.04.02.002.022_msm8974_LA.BF.1.1_RB1__release_AU ()
03-29 23:19:01.410: I/Adreno-EGL(30206): OpenGL ES Shader Compiler Version: E031.25.01.03
03-29 23:19:01.410: I/Adreno-EGL(30206): Build Date: 10/30/14 Thu
03-29 23:19:01.410: I/Adreno-EGL(30206): Local Branch: mybranch5388235
03-29 23:19:01.410: I/Adreno-EGL(30206): Remote Branch: quic/LA.BF.1.1_rb1.8
03-29 23:19:01.410: I/Adreno-EGL(30206): Local Patches: NONE
03-29 23:19:01.410: I/Adreno-EGL(30206): Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1_RB1.04.04.02.002.022 + NOTHING
03-29 23:19:01.410: I/OpenGLRenderer(30206): Initialized EGL, version 1.4
03-29 23:19:01.440: D/OpenGLRenderer(30206): Enabling debug mode 0
03-29 23:19:01.570: W/System.err(30206): javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
03-29 23:19:01.570: I/Timeline(30206): Timeline: Activity_idle id: android.os.BinderProxy@20774b47 time:46545617
03-29 23:19:01.580: W/System.err(30206): at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:306)
03-29 23:19:01.580: W/System.err(30206): at com.android.okhttp.Connection.upgradeToTls(Connection.java:197)
03-29 23:19:01.580: W/System.err(30206): at com.android.okhttp.Connection.connect(Connection.java:151)
03-29 23:19:01.580: W/System.err(30206): at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
03-29 23:19:01.580: W/System.err(30206): at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
03-29 23:19:01.580: W/System.err(30206): at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:373)
03-29 23:19:01.580: W/System.err(30206): at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)
03-29 23:19:01.580: W/System.err(30206): at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)
03-29 23:19:01.580: W/System.err(30206): at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:25)
03-29 23:19:01.580: W/System.err(30206): at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:449)
03-29 23:19:01.580: W/System.err(30206): at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:434)
03-29 23:19:01.580: W/System.err(30206): at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:181)
03-29 23:19:01.580: W/System.err(30206): at org.jsoup.helper.HttpConnection.get(HttpConnection.java:170)
03-29 23:19:01.580: W/System.err(30206): at com.maxl.copgymvertretungsplan.MainActivity$JsoupListView.doInBackground(MainActivity.java:82)
03-29 23:19:01.580: W/System.err(30206): at com.maxl.copgymvertretungsplan.MainActivity$JsoupListView.doInBackground(MainActivity.java:1)
03-29 23:19:01.580: W/System.err(30206): at android.os.AsyncTask$2.call(AsyncTask.java:288)
03-29 23:19:01.580: W/System.err(30206): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-29 23:19:01.580: W/System.err(30206): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
03-29 23:19:01.580: W/System.err(30206): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
03-29 23:19:01.580: W/System.err(30206): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
03-29 23:19:01.580: W/System.err(30206): at java.lang.Thread.run(Thread.java:818)
03-29 23:19:01.580: W/System.err(30206): Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
03-29 23:19:01.580: W/System.err(30206): at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:318)
03-29 23:19:01.580: W/System.err(30206): at com.android.org.conscrypt.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:219)
03-29 23:19:01.580: W/System.err(30206): at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:113)
03-29 23:19:01.580: W/System.err(30206): at com.android.org.conscrypt.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:525)
03-29 23:19:01.580: W/System.err(30206): at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
03-29 23:19:01.580: W/System.err(30206): at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:302)
03-29 23:19:01.580: W/System.err(30206): ... 20 more
03-29 23:19:01.580: W/System.err(30206): Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
03-29 23:19:01.580: W/System.err(30206): ... 26 more
Ich komme nicht wirklich weiter. Könnt ihr mir vielleicht einen Tipp geben, wie ich das ganze hinbekomme?
Wenn Ihr noch weitere Daten braucht, bitte melden!
Danke!
Max
Zuletzt bearbeitet: