Java / JDK / JRE haben einen Schlüsselspeicher cacerts unter dem Ordner lib \ Security, wie unten gezeigt
Java wird mit ca. 93 Zertifikaten ausgeliefert. Diese sind nicht selbst signiert. Diese werden von Java selbst geliefert
Diese Zertifikate sind SHA1-Zertifikate
Hintergrund
Die von uns verwendete Anwendung hängt davon ab, ob Java und unsere Firma angeben, dass sie sich von SHA1 entfernen und diese SHA1 in SHA2 ändern möchten.
Fragen
- Gibt es eine Java-Version / einen Java-Typ, der SHA2 für Out-of-Box-Zertifikate verwendet?
- Kann man out-of-box-Zertifikate durch SHA2 ersetzen?
security
java
certificate
SeanClt
quelle
quelle
Antworten:
Dies ist eine späte Antwort, aber es gibt ein wichtiges Missverständnis in der Frage, das für zukünftige Leser geklärt werden sollte. Die Ausgabe des Keytools kann irreführend sein: Es wird ein SHA1 angezeigt Fingerabdruck für alle Zertifikate, ob sie SHA1 oder SHA2 verwenden Signier-Hash-Funktion (was ist was du suchst). Der SHA1-Fingerabdruck ist einfach eine eindeutige ID des Zertifikats.
Um SHA2-Zertifikate in einem Bundle zu finden, können Sie sich nicht auf keytool -list verlassen. Sie müssen alle Zertifikate mit keytool -exportcert extrahieren und dann die Details für jedes Zertifikat mit keytool -printcert überprüfen: SHA2-Zertifikate haben diese Zeile in der Ausgabe:
SHA2-CA-Zertifikate sind seit JRE 1.6.14 Teil des Standard-Java-Cacerts-Bundles (siehe Zertifikat ttelesecglobalrootclass3ca), wenn nicht früher.
quelle
Wenn CA-Anbieter ihre Zertifikate auf SHA-2 aktualisieren, senden sie die neuen Zertifikate zur Aufnahme in die verschiedenen Produkte, die SSL verwenden, z. B. Browser und Java.
Offensichtlich verfügen ältere Versionen eines bestimmten Produkts nicht über neuere Zertifikate (es gibt keinen Mechanismus, um diese automatisch zu aktualisieren).
Wenn der Anbieter kein neues Zertifikat sendet, wird es nicht in Java aufgenommen, und Sie müssen neuere Zertifikate manuell zum vertrauenswürdigen Java-Zertifikat-Repository hinzufügen.
Wenn Sie also eine Fehlermeldung erhalten, wie:
... dann hast du das wohl nicht richtig CA-Stammzertifikat und Sie müssen die Zertifikate manuell herunterladen und im Java-Keystore für vertrauenswürdige Zertifikate installieren. Hier ist eine Methode, um dies zu tun: http://mikepilat.com/2011/05/adding-a-certificate-authority-to-the-java-runtime.html
quelle