Ich habe Probleme mit einem generierten Zertifikat, das ich verwende, um eine Verbindung zu den Apple Push-Diensten herzustellen. alles funktioniert gut, wenn die erzeugte p12-Datei in meinem src/main/java-Ordner war, aber ich zog es nach src/main/resources und beschlossen, die Arbeit mit dem folgenden Fehler zu stoppen:generiertes Zertifikat funktioniert nicht mehr, wenn es in den Ressourcenordner verschoben wird
DerInputStream.getLength(): lengthTag=111, too big.
Um in einige weitere Details: Ich benutze die Notnoop Push Notifications-Bibliothek und folgte dem Tutorial von Ray Wenderlich, um die Zertifikate zu generieren. nach, pflegte ich zu folgenden Kommandos eine p12-Datei zur Verwendung in Java zu generieren:
openssl x509 -in aps_development.cer -inform DER -out aps_development.pem -outform PEM
openssl pkcs12 -nocerts -in single.p12 -out single.pem
openssl pkcs12 -export -inkey single.pem -in aps_development.pem -out dual.p12
nach, dass ich die dual.p12 in mein Java-Projekt verschoben. Zuerst war die Datei in meinem/src/main/java-Ordner, sagen wir mal unter com.company.push.certificates
(während der Code, der die Datei anfordert, ist com.company.push
). Ich fordere eine Eingabestrom von
InputStream stream = this.getClass().getResourceAsStream("certificates/dual.p12");
Das funktioniert gut in der Entwicklung verwendet wird, aber nicht, wenn das Projekt den Bau (mit Maven), das ist, warum ich die Ressource in den Ressourcen-Ordner verschoben, die exakt gleiche Paket. Die Ressource wird immer noch gefunden, aber jetzt bekomme ich die oben genannten java.io.IOException
Wer weiß, was könnte dies verursachen?
Ps: wenn ich die Datei zurück in das Paket in src/main/java verschiebe, funktioniert alles wieder gut, so scheint das Zertifikat gültig zu sein.
Ich fühle mich wie ein Idiot Ich habe dies selbst nicht überprüft ... Dies scheint das Problem zu sein. Zumindest irgendwie. Während der Entwicklung verwende ich eine lokale jboss-Instanz, überprüfte die Datei im Bereitstellungsverzeichnis, es scheint tatsächlich etwas mit der Datei zu tun zu haben.Es scheint sogar eine andere Kodierung (UTF-8) zu haben, also nehme ich an, dass es als eine Textdatei anstelle einer Binärdatei behandelt wurde. Wie kann ich das verhindern? –
Ok, aus irgendeinem Grund denkt jboss, dass es lustig ist, mit .p12 Dateien zu spielen, ungeachtet des Inhalts. Das Umbenennen der Datei in * .p12.cert scheint genug zu sein, um es zu "reparieren", macht mich aber nicht sehr glücklich :( –