Howto: Kocobox Clientzertifikat mit jedem Browser herunterladen

In diesem Forum dreht sich alles um den TI-Konnektor "KoCoBox" der CGM und die kommende Lösung "TIaaS" ("TI as a Service"). Egal ob Fragen, Probleme, Tipps, Hilfestellungen: Alle Beiträge zum Thema TI, KoCoBox, KIM, eAU usw. sind hier genau richtig.
Antworten
CGM-FTW
Beiträge: 70
Registriert: Mittwoch 15. November 2023, 08:10
1
PVS: CGMMANAGEDTI
Konnektortyp: Kocobox
Hat Dank erhalten: 48 mal

Howto: Kocobox Clientzertifikat mit jedem Browser herunterladen

Beitrag von CGM-FTW »

Clientsytem Zertifikate werden vom Browser nicht heruntergeladen, weil der Konnektor bei der Auslieferung der .zip Datei behauptet, es handle sich um eine plaintext Antwort.
Der Browser entdeckt dann ungültige Zeichen in der Antwort und verwirft den Download.

Das Verhalten zeigen alle Browser, Firefox hat das zumindest bis Version 127 noch ignoriert.
Wer keinen alten Firefox installieren kann oder will, um eine Koco Box zu bedienen, kann folgendes Bookmarklet Javascript nutzen und damit den Download anstoßen.

Dieses tätigt den Download und teilt dem Browser mit, die Antwort als Blob (Binary Large Object alias application/octet-stream) zu behandeln, damit der Browser das nicht verwirft.

Vorgehen:
- Einmalig ein Lesezeichen/Bookmarklet in beliebigem Browser anlegen (Screenshot siehe unten: Name beliebig, als Link den vollständigen Javascript Code aus dem Bookmarklet hinterlegen)
- Login in den Konnektor
- Zertifikatsseite aufrufen
- Statt über die Seite ein neues Zertifikat zu erstellen, das Bookmarklet anklicken und die Parameter dort eingeben.
- Zertifikatstyp ggf. ändern, indem ihr euch aus der Javascript-Meldung euren gewünschten Zertifikatstyp herauskopiert und einfügt. Überflüssige Leerzeichen werden automatisch entfernt.


Boomarklet:

Code: Alles auswählen

javascript:(function()%7Blet%20clientsystem%20%3D%20prompt(%22Bitte%20geben%20Sie%20die%20Clientsystem%20ID%20ein%22%2C%20%22%22)%3B%0Alet%20certtype%20%3D%20prompt(%22Bitte%20geben%20Sie%20den%20Zertifikatstyp%20ein%3A%20RSA_2048%20%3A%20RSA_3072%20%3A%20ECC_NIST%20%3A%20ECC_BRAINPOOL_P256_R1%22%2C%20%22RSA_2048%22)%3B%0Alet%20xtoken%20%3D%20document.getElementById(%22x-token%22).value%0Alet%20cert%20%3D%20%22%2Fadministration%2Fdownload%2Fgenerate-clientsystemcertificate%2F%22%2Bclientsystem%2B%22.zip%3Fxtoken%3D%22%2Bxtoken%2B%22%26certificateTyp%3D%22%2Bcerttype.replace(%2F%5Cs%2Fg%2C%20'')%3B%0Avar%20xhr%20%3D%20new%20XMLHttpRequest()%3B%0Axhr.responseType%20%3D%20'blob'%3B%0Axhr.open('GET'%2C%20cert%2C%20true)%3B%0Axhr.send(null)%3B%0Axhr.onload%20%3D%20function%20(e)%20%7B%0A%20%20%20%20var%20blob%20%3D%20e.currentTarget.response%3B%0A%20%20%20%20saveBlob(blob%2C%20clientsystem%2B%22.zip%22)%3B%0A%7D%0Afunction%20saveBlob(blob%2C%20fileName)%20%7B%0A%20%20%20%20var%20a%20%3D%20document.createElement('a')%3B%0A%20%20%20%20a.href%20%3D%20window.URL.createObjectURL(blob)%3B%0A%20%20%20%20a.download%20%3D%20fileName%3B%0A%20%20%20%20a.dispatchEvent(new%20MouseEvent('click'))%3B%0A%7D%7D)()%3B


Sourcecode (wird NICHT zum Anlegen des Bookmarklets benötigt)

Code: Alles auswählen

let clientsystem = prompt("Bitte geben Sie die Clientsystem ID ein", "");
let certtype = prompt("Bitte geben Sie den Zertifikatstyp ein: RSA_2048 : RSA_3072 : ECC_NIST : ECC_BRAINPOOL_P256_R1", "RSA_2048");
let xtoken = document.getElementById("x-token").value
let cert = "/administration/download/generate-clientsystemcertificate/"+clientsystem+".zip?xtoken="+xtoken+"&certificateTyp="+certtype.replace(/\s/g, '');
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.open('GET', cert, true);
xhr.send(null);
xhr.onload = function (e) {
    var blob = e.currentTarget.response;
    saveBlob(blob, clientsystem+".zip");
}
function saveBlob(blob, fileName) {
    var a = document.createElement('a');
    a.href = window.URL.createObjectURL(blob);
    a.download = fileName;
    a.dispatchEvent(new MouseEvent('click'));
}

Grüße Christian krause
Sie haben keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
turbotm
Beiträge: 568
Registriert: Montag 27. August 2012, 17:37
13
Hat sich bedankt: 5 mal
Hat Dank erhalten: 28 mal

Re: Howto: Kocobox Clientzertifikat mit jedem Browser herunterladen

Beitrag von turbotm »

Hat leider nicht mehr funktioniert. Unlesbare ZIP Datei runter geladen.
CGM-FTW
Beiträge: 70
Registriert: Mittwoch 15. November 2023, 08:10
1
PVS: CGMMANAGEDTI
Konnektortyp: Kocobox
Hat Dank erhalten: 48 mal

Re: Howto: Kocobox Clientzertifikat mit jedem Browser herunterladen

Beitrag von CGM-FTW »

Diese Detailfülle deiner Aussage schockiert mich. Woher soll ich so wissen, was falsch gelaufen ist.

Die neue Konnektorversion 5.5.16 ist freigegeben. Damit wird der Workaround nicht mehr benötigt.
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste