2016-03-28 9 views
1

Ich Zertifikate aus dem Schlüsselspeicher basierend auf Aliasnamen immer den Code unten verwenden,Get-Zertifikat von Schlüsselspeichern nicht auf Aliasnamen in Java

KeyStore keyStore = KeyStore.getInstance("Windows-MY"); 

    Enumeration aliasesEnum = keyStore.aliases(); 

    while(aliasesEnum.hasMoreElements()) 
    { 
     aAliasName = (String)aliasesEnum.nextElement(); 
     X509Certificate certificate = (X509Certificate)keyStore.getCertificate(aAliasName); 
    } 

Gibt es eine Möglichkeit Aliase aus dem aktuellen Token zu bekommen statt vom Schlüsselspeicher erhalten ?.

Vielen Dank im Voraus.

+0

Wenn Sie jetzt ein anderes Problem haben, erstellen Sie eine neue Frage. Es ist eine schlechte Übung, Ihre Frage zu ändern, nachdem sie beantwortet wurde, denn dann stimmen die Antworten nicht mehr mit der Frage überein. – Omikron

+0

@Vijaya, wie Omikron darauf hingewiesen hat, stellen Sie bitte Ihre Frage und öffnen Sie eine neue Frage für Ihre neue Ausgabe. Die Antwort (en) unten würden also zu der Frage passen, und Leute, die diese Frage in der Zukunft besuchen, wissen, was ihr Problem lösen würde. Sie können die Antwort akzeptieren, die Ihr Problem gelöst hat, und diese Frage damit abschließen. –

Antwort

1

Es ist nicht möglich, ein bestimmtes Zertifikat zu erhalten, außer das Alias ​​zu kennen.

Die beste Vorgehensweise wäre ein eindeutiger Alias ​​in Ihrem Anwendungsfall, damit Sie wissen, welches Zertifikat Sie erhalten.

Wenn Sie das Zertifikat über die KeyStore API speichern, können Sie unter überprüfen, ob der Aliasname bereits vor dem Speichern vorhanden ist.

+0

Vielen Dank für Ihre Antwort. Ich habe das Problem über diesen Link https://joinup.ec.europa.eu/software/sd-dss/issue/problem-possible-keystore-aliases-collision-when-using-mscapi behoben. – Vijaya

+0

Jetzt habe ich ein anderes Problem können Sie bitte aktualisierte Frage überprüfen. – Vijaya

0

Normalerweise sind Alias-Namen eindeutig. Dies ist ein Problem, das für MSCAPI Keystore spezifisch ist. Es gibt mehrere Fehlerberichte (einige von ihnen sind sehr alt) zu diesem Thema:

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=2162058

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6483657

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8058544

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6672015

die letzte Folge Link, ist es eine Abhilfe enthält. Sie müssen im Grunde die Alias-Namen über Reflection-API in etwas einzigartiges ändern (siehe Code in Link). Nicht gerade eine saubere Lösung, aber leider der einzige Weg.

+0

Vielen Dank für Ihre Antwort. Ich habe das Problem über diesen Link https://joinup.ec.europa.eu/software/sd-dss/issue/problem-possible-keystore-aliases-collision-when-using-mscapi behoben. – Vijaya

+0

Ich denke, das ist dasselbe wie der letzte Link, den Sie zur Verfügung gestellt haben. – Vijaya

+0

Jetzt habe ich ein anderes Problem können Sie bitte aktualisierte Frage überprüfen. – Vijaya

Verwandte Themen