2017-12-08 10 views
0

Freunden,Erhalten Zertifikat Details von Java Schlüsselspeicher

Problem Statement: Eine externe Einheit sendet die Seriennummer ein Zertifikat auf mein System. Und unter Verwendung dieser Seriennummer muss mein System Zertifikatsdetails herausfinden oder abrufen (z. B. durch Online-Download oder durch Laden mit Java Key Store) und es für die Signaturprüfung verwenden.

Ich konnte nicht finden, wie man Zertifikat von online unter Verwendung der Seriennummer herunterlädt. Aber ich würde nicht aufpassen, obwohl es war, weil Sie wissen warum.

Stattdessen möchte ich mit Java Key Store (JKS) gehen und Zertifizierungsdetails abrufen. JKS erwartet jedoch Aliasnamen und Passwort.

Also, schlagen Sie mir jetzt vor, zu diesem externen Entity Guy zu gehen und ihn zu bitten, die Zertifizierungsdetails anstelle der Seriennummer zu senden? Wenn ja, ist dies die Sicherheitskonformität? Wir arbeiten an der Telecom-Domäne mit der Remote Provisioning Architecture für die Technische Spezifikation Versio 3.0 von Embedded UICC.

Antwort

1

CAs veröffentlichen nur ihre Root- und Intermediate-Zertifikate. Die Seriennummer wird normalerweise nicht zum Herunterladen verwendet, aber eine URL ist in den endgültigen ausgestellten Zertifikaten enthalten.

Zusammenfassung: Sie können ein Zertifikat nicht anhand der Seriennummer finden, es sei denn, Ihre Zertifizierungsstelle verfügt über einen bestimmten Dienst zum Herunterladen oder eine vordefinierte Liste der Zertifizierungsstellenzertifikate, z. B. in einem Schlüsselspeicher.

Angenommen, Sie haben einen Schlüsselspeicher mit möglichen Zertifikaten, können Sie alle verfügbaren Aliase auflisten, das Zertifikat laden und prüfen, ob die Seriennummer mit der angegebenen übereinstimmt. Sie brauchen überhaupt kein Passwort.

Enumeration enumeration = keystore.aliases(); 
while(enumeration.hasMoreElements()) { 
     String alias = (String)enumeration.nextElement(); 
     X509Certificate certificate = (X509Certificate) keystore.getCertificate(alias); 
     BigInteger serialNumber = certificate.getSerialNumber() 

    } 

Beachten Sie, dass die Seriennummer zwischen verschiedenen CAs

+0

Vielen Dank Freund .. Ihre Zeiger sind jetzt mein Ausgangspunkt nicht eindeutig ist. Ich habe versucht, nach Ihrer Antwort zu untersuchen, aber für mein Problem, sagen, ich habe verschiedene MNO (Mobile N/w Operatoren) senden mir die Seriennummer des Zertifikats und ich muss ihre Unterschrift autorisieren .. mit Ihrer obigen Erklärung ist klar, dass vor -provisioning ist die beste Alternative, (wie es ist keine Möglichkeit, online mit Seriennummer herunterladen), aber sind sie eine Möglichkeit, die Zertifikatsdetails aus Keystore ohne Seriennummer? –

+0

Sie können alle verfügbaren Zertifikate mit 'keystore.aliases()' abrufen und dann das 'X509Certificate' mit dem Alias ​​laden. Siehe javadoc https://docs.oracle.com/javase/7/docs/api/java/security/cert/X509Certificate.html Sie haben dort alle Zertifikatsdaten – pedrofb

+0

Danke nochmal !!! Diese Diskussion erfüllt alle meine Anforderungen .. Prost zu Pedrofb –

Verwandte Themen