@Fancy
Zertifikat stammt von http://www.thawte.de/ und ist von Thawte für die Java-Code-SIgnierung vorgesehen.
TSA Url ist die von Thawte „empfohlene“: https://timestamp.geotrust.com/tsa
Getestet hab ich immer mit der aktuellen Java Version (erst Java 7 Update 45, jetzt Update 51).
Soweit ich das recherchiert habe, wird die Geotrust TSA von der JRE anerkannt.
Vermutlich willst Du Deinen Arbeitgeber nicht preisgeben, sonnst hätte ich vorgeschlagen, dass Du ein „Hello World“-Applet baust, signierst und online stellst, dann könnte man sich das vielleicht ansehen. So ist es halt schwierig, denn eigentlich sollte es ja gehen.
So ist es. Kann und darf den AG nicht nennen. Das mit dem HelloWorld ist so ne Sache. Das Ergebnis ließe sich in keinster Weise mit der betroffenen Anwendung vergleichen. Die Anwendung ist deutlich komplizierter und hat dutzende Abhängigkeiten zu fremden Bibliotheken (inkl. nativer Abhängigkeiten zu DLLs).
@Unregistered
The Stackoverflow-Artikel hatte ich auch schon gefunden. Leider ist das wohl nicht die Ursache.
Bin noch auf der Suche nach einem Log/Debug/Trace-Level das mir verrät warum die Anwendung mit einem abgelaufenen Zertifikat als nicht sicher eingestuft wird… Kann ja nicht sein dass da nirgendwo der Grund steht…
[update]
Manchmal hilft es ein wenig Abstand zur Anwendung zu bekommen. Mir kam gerade so eine Idee:
Der Screenshot in meinem obigen Post mit der roten Warnmeldung: Da geht’s in erster Linie nicht um das abgelaufene Zertifikat. Da geht’s in erster LInie mal um den uneingeschränkten Zugriff… Während das Zertifikat noch gültig ist kommt die Meldung nicht. Das heisst vllt. dass Java ein Problem damit hat wenn a) die Anwendung mit uneingeschränktem Zugriff laufen will und b) auch noch das Zertifikat abgelaufen ist…
Wenn das der Fall ist, dann werde ich wohl nicht drum rum kommen mal einen Bug/RFE/etc. bei Oracle aufzumachen um die Sache aufzuklären.
*** Edit ***
Nochmal ein wenig Rückmeldung:
Das Zertifikat läuft in Mai ab. Hab das Systemdatum auf Juni gesetzt und das Applet mal im IE mit zuvor geleertem Cache etc. ausgeführt. Bis zu dem Zeitpunkt wo der erste Dialog wie im ersten Screenshot gezeigt erscheint, wird folgendes in der Java-Console geloggt:
Java-Plug-in 10.51.2.13
JRE-Version verwenden 1.7.0_51-b13 Java HotSpot™ Client VM
Benutzer-Home-Verzeichnis = C:\Users\myuser
c: Konsolenfenster löschen
f: Objekte in Finalisierungs-Queue finalisieren
g: Garbage Collect
h: Diese Hilfemeldung anzeigen
l: Class Loader-Liste ausgeben
m: Speicherauslastung drucken
o: Logging auslösen
q: Konsole ausblenden
r: Policy-Konfiguration neu laden
s: System- und Deployment-Eigenschaften ausgeben
t: Threadliste ausgeben
v: Thread-Stack ausgeben
x: Class Loader-Cache leeren
0-5: Trace-Ebene auf setzen
cache: Initialize resource manager: com.sun.deploy.cache.ResourceProviderImpl@cf9bf0
basic: Fortschritts-Listener hinzugefügt: sun.plugin.util.ProgressMonitorAdapter@15ef3ab
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/company.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/jdom.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/jai_core.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/jai_codec.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/mlibwrapper_jai.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/default.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/lwf_jp2_jni.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/icepdf-core.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/icepdf-viewer.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/font-engine.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/plugin_upload.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/network.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/commons-codec.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/commons-httpclient.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/commons-logging.jar
basic: Plugin2ClassLoader.addURL parent called for http://company-9/company/patch_companyweb.jar
security: Blacklist-Entzugsprüfung ist aktiviert
security: blacklist: created: NEED_LOAD, lastModified: 1389866187087
security: blacklist: hasBeenModifiedSince 1389866229292 (we have 1389866187087)
security: Prüfung der Liste vertrauenswürdiger Librarys ist aktiviert
network: Cacheeintrag gefunden [URL: http://company-9/company/company.jar, Version: null] prevalidated=false/0
cache: Adding MemoryCache entry: http://company-9/company/company.jar
cache: Resource http://company-9/company/company.jar has expired.
network: Verbindung von http://company-9/company/company.jar mit Proxy=DIRECT wird hergestellt
network: Verbindung von http://company-9:80/ mit Proxy=DIRECT wird hergestellt
network: ResponseCode für http://company-9/company/company.jar: 304
network: Codierung für http://company-9/company/company.jar: null
network: Verbindung mit http://company-9/company/company.jar trennen
cache: Read manifest for http://company-9/company/company.jar: read=173 full=70429
cache: Loading full manifest for http://company-9/company/company.jarcache: Reading Signers from 4395 http://company-9/company/company.jar | C:\Users\myuser\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\2\36fe3542-4a4a42d4.idx
cache: Done readSigners(http://company-9/company/company.jar)
security: Vertrauen für http://company-9/company/company.jar ist beendet: Thu Jan 01 01:00:00 CET 1970
security: Missing Application-Library-Allowable-Codebase manifest attribute for: http://company-9/company/company.jar
security: Zertifikate werden aus Deployment-Session-Zertifikatspeicher geladen
security: Zertifikate wurden aus Deployment-Session-Zertifikatspeicher geladen
security: Zertifikate werden aus Deployment-Session-Zertifikatspeicher geladen
security: Zertifikate wurden aus Deployment-Session-Zertifikatspeicher geladen
security: Zertifikate werden aus Deployment-Session-Zertifikatspeicher geladen
security: Zertifikate wurden aus Deployment-Session-Zertifikatspeicher geladen
security: Zertifikate werden aus Internet Explorer TrustedPublisher-Zertifikatspeicher geladen
security: Zertifikate wurden aus Internet Explorer TrustedPublisher-Zertifikatspeicher geladen
security: Zertifikate werden aus Internet Explorer DISALLOWED-Zertifikatspeicher geladen
security: Zertifikate wurden aus Internet Explorer DISALLOWED-Zertifikatspeicher geladen
security: Zertifikatkette mit CertPath-API validieren
security: Das Zertifikat ist abgelaufen. Zeitstempelinformationen müssen geprüft werden
security: Keine Zeitstempelinformationen verfügbar
security: Zertifikate werden aus Internet Explorer ROOT-Zertifikatspeicher geladen
security: Zertifikate wurden aus Internet Explorer ROOT-Zertifikatspeicher geladen
security: Loading blacklisted.certs file: C:\Users\myuser\AppData\LocalLow\Sun\Java\Deployment\security\blacklisted.certs
security: SHA-256Certificate finger print: B7122B3E5D5EBD477AD89B81B550906F2088D7EB24E562D79C07A8FB45E2E79F
security: Zertifikat wird in Internet Explorer DISALLOWED-Zertifikatspeicher gesucht
security: SHA-256Certificate finger print: AF840CA2B9DFB776BF81AA94C401BC440C52E5C590C43607A13D6680D83E3349
security: Zertifikat wird in Internet Explorer DISALLOWED-Zertifikatspeicher gesucht
security: SHA-256Certificate finger print: C99157DF28D28EBD87B8B041AACCF023CF1C9AD0D21FD7116149D7F96484FA51
security: Zertifikat wird in Internet Explorer DISALLOWED-Zertifikatspeicher gesucht
security: SHA-256Certificate finger print: AB7036365C7154AA29C2C29F5D4191163B162A2225011357D56D07FFA7BC1F72
security: Zertifikat wird in Internet Explorer DISALLOWED-Zertifikatspeicher gesucht
security: OCSP-Unterstützung ist aktiviert
security: CRL-Unterstützung ist aktiviert
security: Failing over to CRLs: Certificate does not specify OCSP responder
network: Cacheeintrag gefunden [URL: http://crl.thawte.com/ThawtePremiumServerCA.crl, Version: null] prevalidated=false/0
cache: Adding MemoryCache entry: http://crl.thawte.com/ThawtePremiumServerCA.crl
cache: Resource http://crl.thawte.com/ThawtePremiumServerCA.crl has expired.
network: Verbindung von http://crl.thawte.com/ThawtePremiumServerCA.crl mit Proxy=DIRECT wird hergestellt
network: Verbindung von http://crl.thawte.com:80/ mit Proxy=DIRECT wird hergestellt
network: ResponseCode für http://crl.thawte.com/ThawtePremiumServerCA.crl: 304
network: Codierung für http://crl.thawte.com/ThawtePremiumServerCA.crl: null
network: Verbindung mit http://crl.thawte.com/ThawtePremiumServerCA.crl trennen
network: Verbindung von http://ocsp.thawte.com/ mit Proxy=DIRECT wird hergestellt
network: Verbindung von http://ocsp.thawte.com:80/ mit Proxy=DIRECT wird hergestellt
security: Failing over to CRLs: java.io.IOException: Response is unreliable: its validity interval is out-of-date
network: Cacheeintrag gefunden [URL: http://crl.thawte.com/ThawtePCA.crl, Version: null] prevalidated=false/0
cache: Adding MemoryCache entry: http://crl.thawte.com/ThawtePCA.crl
cache: Resource http://crl.thawte.com/ThawtePCA.crl has expired.
network: Verbindung von http://crl.thawte.com/ThawtePCA.crl mit Proxy=DIRECT wird hergestellt
network: ResponseCode für http://crl.thawte.com/ThawtePCA.crl: 304
network: Codierung für http://crl.thawte.com/ThawtePCA.crl: null
network: Verbindung mit http://crl.thawte.com/ThawtePCA.crl trennen
network: Verbindung von http://ocsp.thawte.com/ mit Proxy=DIRECT wird hergestellt
network: Verbindung von http://ocsp.thawte.com:80/ mit Proxy=DIRECT wird hergestellt
security: Failing over to CRLs: java.io.IOException: Response is unreliable: its validity interval is out-of-date
network: Cacheeintrag gefunden [URL: http://cs-g2-crl.thawte.com/ThawteCSG2.crl, Version: null] prevalidated=false/0
cache: Adding MemoryCache entry: http://cs-g2-crl.thawte.com/ThawteCSG2.crl
cache: Resource http://cs-g2-crl.thawte.com/ThawteCSG2.crl has expired.
network: Verbindung von http://cs-g2-crl.thawte.com/ThawteCSG2.crl mit Proxy=DIRECT wird hergestellt
network: Verbindung von http://cs-g2-crl.thawte.com:80/ mit Proxy=DIRECT wird hergestellt
network: ResponseCode für http://cs-g2-crl.thawte.com/ThawteCSG2.crl: 304
network: Codierung für http://cs-g2-crl.thawte.com/ThawteCSG2.crl: null
network: Verbindung mit http://cs-g2-crl.thawte.com/ThawteCSG2.crl trennen
security: Zertifikatsvalidierung mit OCSP/CRL war erfolgreich
security: Zertifikat wird in Internet Explorer TrustedPublisher-Zertifikatspeicher gesucht
basic: Dialog type is not candidate for embedding
„Seltsame“ Stellen hab ich fett markiert. Hier mal die Stellen im einzelnen:
Vertrauen für http://company-9/company/company.jar ist beendet: Thu Jan 01 01:00:00 CET 1970
Seltsam. Wo kommt das 1970er Datum auf einmal her?!
Missing Application-Library-Allowable-Codebase manifest attribute for: http://company-9/company/company.jar
Werde das Attribut mal noch nachziehen. Die Meldung für dieses Attribut ist jetzt mit Jave7u51 neu.
security: Das Zertifikat ist abgelaufen. Zeitstempelinformationen müssen geprüft werden
security: Keine Zeitstempelinformationen verfügbar
Doof dass ich hier nicht weiß welches das sein soll?! Etwa das von „company.jar“? Der Check mir JarSigner bestätigt aber, dass es einen Zeitstempel gibt:
[entry was signed on 16.01.14 02:52]
Das spuckt der Jarsigner für jede File in der JAR aus … Wieso ist da also etwas nicht mit Zeitstempel signiert?!
security: Failing over to CRLs: java.io.IOException: Response is unreliable: its validity interval is out-of-date
Hmm, könnte evtl. von meiner vorgedrehten Systemzeit stammen?! Aber wie sonst soll ich prüfen wie die Anwendung mit abgelaufenen Zertifikat reagiert (bevor es tatsächlich abgelaufen und somit zu spät ist).