HI, da kann ich das Certifikas sehen. Die Installation hatte ich schon ganz am Anfang gemacht.
Gruß
Ralf
HI, da kann ich das Certifikas sehen. Die Installation hatte ich schon ganz am Anfang gemacht.
Gruß
Ralf
ist "load-der.crt" deine Zertifikat datei? dachte die heist "zertifigat.cer"
habe leider kein Zertivikat kann es somit nicht testen
HI , ich köte dir ein Zertifikat zum testen ausstellen.
Wäre Cool wenn du das machen köntest vieleicht klappt es dann schneller.
Würde es dir dann per Mial schicken.
Gruß Ralf
Ok
meine mail ist
[email protected]
schick mir am besten einen mail dann schicke ich dir eine Zertifikat mit Passwort und die Adresse der Webseite.
Danke
Ralf
Halo @Ralf Kruppa erstmal Danke für das Zertifikat.
nach der installation und versuch auf deine Seite zuzugreifen kommt Bild 1
auch nach nochmaliger installation und klick auf Zulassen Bild 2
kein zugriff auf deine Seite .
wenn ich das Zertifikat ingnoriere kann ich deine Seite mit den Json Code sehen.
Unter Win mit Firefox das selbe.
Wenn es im Browser nicht geht kann es in der App auch nicht gehn.
die Instalation des Zerti geht. Verbindungsaufbau abruf von Daten Fehler.
OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java.....
Hallo so hier ein Lösung mit der LIB von https://github.com/rfreedman/android-ssl
In dem mitgegebenen Projekt habe ich das P12 Zertifikat und den Pem Code gelöscht.
Die web adresse von Ralf wurde auch geändert.
Hi , super das es bei dir schon geklappt hat.
Ich habe es bei mir jetzt auch getestet habe gerade nur ein Berechtigungs Problem mit der Zertifikats Datei.
Ich habe es in das Root der Internen Spechers kopiert aber er sagt mir immer:
java.io.FileNotFoundException: /storage/emulated/0/client-test.p12 open
falid: EACCESS (Permission denied)
ABer das problem werde ich auch noch lösen.
jetzt schon mal sehr vielen Dank für die tolle Unterstützung.
Gruß Ralf
Hi Ralf,
habe dir das Projekt per Mail geschikt mit deinen Zertifikaten. Hir im Forum habe ich sie gelöscht.
Musste es als PDF Datei unbenennen da die Mail immer zurück kam.
Das p12 Zerti und das das daraus erzeugte PEM habe ich in die Assets kopiert.
von dort wird am anfang das P12 zerti in das Root der Sd-Karte Kopiert.
In der App wird es dann geladen.
bei dem Pem must du nur den CodeBlock aus dem Pem zerti einfügen aber den richtigen da sind bei dir 3 enthalten.
lade das projekt einfach in AS
Zitat
Zitat
java.io.FileNotFoundException: /storage/emulated/0/client-test.p12 open
falid: EACCESS (Permission denied)
schaue dir mal den Thrad an. Permission ab Android 6.0
Deshalb benutze ich fur mein Beispiel API 22 und nicht 23. zum Komilieren.
database Backup - storage/emulated/0
Hallo so ich habe es jetzt auch mit den Berechtigungen hinbekommen.
Ich habe folgendes geändert:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String result ="";
if(ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
if(ActivityCompat.shouldShowRequestPermissionRationale(this,android.Manifest.permission.READ_EXTERNAL_STORAGE)){
}else{
ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE_ASK_PERMISSION);
}
}
int permissionCheck = ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE);
if(ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){
//hier dein Code
copyzerti(this);
ImageDownloader task = new ImageDownloader();
try {
result= task.execute("https://3xxxxxxxxxxxxx.eu").get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
updateOutput(result);
}else {
ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, permissionCheck);
}
}
Alles anzeigen
Nun habe ich aber das nächste Problem:
11-02 08:06:30.582 23998-24169/com.example.kruppa.https12 E/MainActivity: failed to create timeApi
java.lang.IllegalArgumentException: bad base-64
at android.util.Base64.decode(Base64.java:161)
at android.util.Base64.decode(Base64.java:136)
at android.util.Base64.decode(Base64.java:118)
at com.chariotsolutions.example.http.SSLContextFactory.loadPemCertificate(SSLContextFactory.java:128)
at com.chariotsolutions.example.http.SSLContextFactory.loadPEMTrustStore(SSLContextFactory.java:62)
at com.chariotsolutions.example.http.SSLContextFactory.makeContext(SSLContextFactory.java:45)
at com.chariotsolutions.example.http.Api.<init>(Api.java:28)
at com.example.kruppa.https12.MainActivity$ImageDownloader.doInBackground(MainActivity.java:109)
at com.example.kruppa.https12.MainActivity$ImageDownloader.doInBackground(MainActivity.java:97)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Alles anzeigen
Gruß
Ralf
hi habe dir doch das richtige dem File geschickt. Wenn du den p12 in ein pem umwandelte werden da drei Code Blöcke erstellt im ascii . mit einen Editor bearbeiten war glaube der zweite block. So wie es auf der web Seite von der lib in den asset auch ist.
Und wo in deinem Code ist die PERMISSION für das Internet? Im manifest sind zwei PERMISSION sdkarte u Internet dann musst du die auch in der app abfragen.
Wolte dir ja das gesamte Projekt schicken dein Mail Account nimmt kein ZIP an. Auch nicht wenn es umbenannt wurde .
Hi,
jetzt funktioniert es. In der PEM Datei darf nur das Zertifik enthalten sein. Aller anderer kram muß raus.
SUper super.
Vielen Dank für deinen Unterstützung.
Gruß Ralf
TOLL
War doch etwas langwierig und etwas verzwickt. Habe auch etwas bei dem Thema gelernt. Das Problem lag hauptsächlich an dem Trust Manager der das zerti bestätigt. Da es ein selbst signiertes ist und somit von den offiziellen im Handy gespeicherten Servern nicht bestätigt wird. Deshalb der Fehler handshack. Durch die klasse Trustmannager die in der lib überschreiben wird und dort dein zerti eingetragen wird . Kommt die Kommunikation nun auch zustande.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!