Abrufen eines PrivateKey-Objekts aus einer .p12-Datei in Java
Wie der Titel schon sagt, habe ich .p12-Datei, erforderlich für google-Dienste-Konto api-Zugriff. Um die Anmeldeinformationen, die Verbindung zu der api gibt es ein Feld .setServiceAccountPrivateKey(PrivateKey privateKey). Also, was ist der einfachste Weg, in dem ich dies tun kann? Ich habe einen Ordner "resources", welches ist in meinen classpath so wenn ich die p12-Datei gibt, ich kann die Ressource von getClass().getResource() als entweder von einem inputStream oder einer URL. Ich habe versucht, die URL-Methode, aber es funktioniert nicht (ich bekomme eine "URI ist nicht hierarchisch," Fehler beim Versuch, eine Datei zu erstellen-Objekt aus der URL.toURI()).
InformationsquelleAutor der Frage gratsby | 2013-09-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie laden Sie Ihre .p12-Datei mit dem
ClassLoader.getResourceAsStream(String)
Methode, laden Sie es auf einen KeyStore und Sie bekommen den Schlüssel aus dem KeyStore.ClassLoader.getResourceAsStream(String)
Belastungen Ressourcen von jedem Ort aus, vorausgesetzt, Sie sind schon auf dem Klassenpfad, es gibt keine Notwendigkeit, geben Sie einen Pfad zu der Datei.keyAlias
ist der name des Eintrags in Ihrer p12-Datei, die entspricht dem privaten Schlüssel. PKCS12-Dateien können mehrere Einträge enthalten, so müssen Sie einige Weg, um zu zeigen, welche Eintrag, den Sie zugreifen möchten. Der alias ist, wie dies erreicht wird.Wenn Sie nicht sicher sind, was der alias für Ihren privaten Schlüssel, können Sie die
keytool
utility aus der Befehlszeile, um eine Liste der Inhalte Ihrer p12-Datei. Dieses tool ist im Lieferumfang der JRE-und JDK-Installationen.Ausgabe
InformationsquelleAutor der Antwort Syon
Ich denke, es ist einfacher, rufen Sie Google SecurityUtils direkt, z.B.:
Es ist eine Zeile, und Sie nicht haben, um sorgen über aliasing.
InformationsquelleAutor der Antwort Robert Watts
Wenn Sie
null
ausgetKey()
(zB. Sie sind mitBouncyCastle
als Anbieter) sollten Sie die letztenkeyAlias
element:InformationsquelleAutor der Antwort Stocki
Die oben genannten Vorschläge nicht für mich arbeiten. Dann versuchte ich, das man bei http://www.java2s.com/Code/Java/Security/RetrievingaKeyPairfromaKeyStore.htm und es funktionierte. Kopieren und einfügen es unter
InformationsquelleAutor der Antwort sdm