Der Fall: Ich bin Aufrechterhaltung eines Java-Applets, die die BouncyCastle Bibliotheken verwendet bcpkix-jdk15on-149.jar und bcprov-jdk15on-149.jar.BouncyCastle Cryptography Anbieter Bibliothek mit Applet auf Java 7u40 verwendet
Problem ist, wenn das Applet auf einem JRE-Version 7_u40 aktiviert Browser ausgeführt wird.
Das Verhalten hat sich gegenüber Version 7_u25 so geändert, dass immer ein modales Fenster wie "Sicherheitsabfrage für eine App mit selbstsigniertem Zertifikat" angezeigt wird (das nicht mehr dauerhaft ausgeblendet werden kann), nur vertrauenswürdig bcprov.
https://www.java.com/en/download/help/appsecuritydialogs.xml
Soweit ich weiß, ist dies, weil BC Bibliotheken mit dem BouncyCastle Zertifikat signiert sind, von dem "JCE Code Signing CA" ausgestellt. Aus diesem Grund kann die lib als Kryptografieanbieter fungieren und agieren.
ABER: Die JRE kann die Zertifikatskette nicht erstellen, um der Signatur zu vertrauen. Es zeigt „Anbieter: UNKNOWN“
Ich weiß, dass ich diese Signatur entfernen und Zeichen von mir (ich besitze ein Zeichen Zertifikat Thawte Code):
- es mit bcpkix lib arbeitet
- es nicht funktioniert mit bcprov, weil es nicht als ein gültiger Kryptografieanbieter betrachtet wird (es wird von der JRE nicht vertrauenswürdig sein).
Bin ich richtig? Was kann ich tun?
PS: Ich googelte viel, um das JCA-Root-Zertifikat zu finden (um es in den JRE-Truststore zu legen), ohne Erfolg ... Gibt es eine Möglichkeit, diese Root-CA zu greifen?
Einige Leute haben mir gesagt, die bcprov Bibliothek zu unterzeichnen ein zweites Mal mit meinem eigenen Zertifikat (bereits von BC unterzeichnet). Das Problem ist, dass das Ergebnis bei der Verifizierung mit "jarsigner" fehlschlägt. Also, wenn jemand weiß, wie man eine andere Signatur in eine JAR-Datei legt, lass es mich wissen –