2016-08-03 14 views
0

Ich entwickle ein Java-Applet zum Einlesen von PDF-Dokumenten im Webbrowser. Das Applet muss in der Lage sein, mit Windows und Mac OS zu arbeiten. Das Applet zeigt eine Liste der installierten Zertifikate auf dem Computer des Benutzers an und der Benutzer kann eine davon zum Signieren auswählen.Zugriff auf Keystore-Zertifikate in Java

Ich habe Beispiele gefunden, wie Zertifikate aus einem Windows Keystore mit dem "Windows-MY" Bezeichner zu lesen, aber ich kann keine Beispiel mit Zertifikaten in Java für Mac OS arbeiten. Wie kann eine Zertifikatsliste vom Keystore auf einem Mac gelesen werden?

Ich bin neu in Java-Programmierung (in erster Linie ein .NET-Web-Entwickler), vielleicht vermisse ich etwas. Danke für jede Hilfe.

Antwort

3

Dies ist hier dokumentiert: Java Cryptography Architecture Oracle Providers Documentation for JDK 8

Sie die ganze Seite lesen sollte, aber der betreffende Teil ist für Ihre Frage an der Unterseite:

Der Apple-Provider eine java.security.KeyStore implementiert, bietet Zugriff auf den Mac OS X Keychain. Die folgenden Algorithmen im Apple-Provider verfügbar sind:

Motor: Keystor
Algorithm Namen (n): KeychainStore

Also, mit anderen Worten: Sie ein Schlüsselspeicher-Objekt für den Schlüsselbund von Mac OS X erhalten durch mit dem Namen „KeychainStore“:

KeyStore ks = KeyStore.getInstance("KeychainStore"); 

Danach ist es im Grunde die gleichen wie für jeden anderen Keystore-Typen. Zum Beispiel alle Zertifikate und ihre Aliase zur Liste:

ks.load(null, null); 
Enumeration<String> en = ks.aliases(); 
while (en.hasMoreElements()) { 
    String aliasKey = en.nextElement(); 
    X509Certificate c = (X509Certificate) ks.getCertificate(aliasKey); 
    System.out.println("alias: " + aliasKey); 
    System.out.println("cert:" + c.getSubjectX500Principal().toString()); 
} 

die Browser-Hersteller und Oracle BTW, sind Phasing Browser-Plugin für Applets aus. Java Web Start könnte eine Alternative sein.