Our applets have stopped working on HTTPS after updating to java 1.7.0_45. They worked on 1.7.0_40 and all lower versions and work on HTTP even with 1.7.0_45.
All references I could find pointed to a handshake exception introduced with java 7, due to no ServerName definition, but this does not apply to our applets.
Java console alerts me that the applet was initialized, started and made visible and shows no errors. However, the applet is not displayed (applets are compatible with IE, Mozilla and Chrome and behaviour is reproduced in all). This also happens when starting applets from sourcecode in Intellij Idea
I have been researching this for the past few days and have not found an explanation. Do any of you have any idea why this happens?
Edit - I kept the java console as well, but here's what I have discovered:
In previous versions of java, a pop-up warning shows up that asks the user if the source is trusted or not. If user allows access, our certificate is imported. With 1.7.0_45, the certificate is blocked by default.
I've not switched to researching a way around this now. Will post the answer as soon as I find it, but if anyone has an any tips, They'd be much appreciated.
Java console outputs this:
PluginMain: starting applet ID 1 in parent window 0xb05f0 with parameters:
Document base = https://myServer:myPort/AppletHome.html
mayscript=true
hspace=0
rmihost=#HOSTNAME#
align=BOTTOM
width=320
code=MyClass.class
height=250
scriptable=false
rmiport=31308
language=en
archive=myjars.jar
vspace=0
enablecookie=true
codebase=https://myserver:myport/
amactivated=false
----
security: Accessing keys and certificate in Mozilla user profile: null
security: JSS is not configured
security: Blacklist revocation check is enabled
security: blacklist: created: NEED_LOAD, lastModified: 1385559768744
security: blacklist: hasBeenModifiedSince 1385560033627 (we have 1385559768744)
security: Trusted libraries list check is enabled
security: Certificate revocation enabled. Disable security validation optimizations.
security: Reset cached validation for https://myHost:myPort/data/myJar.jar.
---
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if SSL certificate is in Deployment permanent certificate store
security: Check if certificate can be verified using certificates in Root CA certificate store
And I think this right here might be the problem:
security: Certificate has failed the verification with the SSL Root CA certificates
security: Invalid certificate from HTTPS server
But the output concludes so:
security: Certificate revocation enabled. Disable security validation optimizations.
Missing Application-Name: manifest attribute for: https://myHost:myPort/data/myJar.jar
Missing Permissions manifest attribute for: https://myHost:myPort/data/myJar.jar
Missing Codebase manifest attribute for: https://myHost:myPort/data/myJar.jar
security: Validate the certificate chain using CertPath API
security: SHA-256Certificate finger print: certificateFingerPrint1
security: SHA-256Certificate finger print: certificateFingerPrint2
security: SHA-256Certificate finger print: certificateFingerPrint3
security: The OCSP support is enabled
security: The CRL support is enabled
network: Connecting http://ocsp.thawte.com/ with proxy=DIRECT
network: Connecting http://ocsp.thawte.com:80/ with proxy=DIRECT
security: OCSP Response: GOOD
network: Connecting http://ocsp.thawte.com/ with proxy=DIRECT
network: Connecting http://ocsp.thawte.com:80/ with proxy=DIRECT
security: OCSP Response: GOOD
security: Certificate validation succeeded using OCSP/CRL
basic: updateValidationResultsForApplet update
cache: Mark prevalidated: https://myHost:myPort/data/myJar.jar true tm=1385628443976 cert=1425427199000
basic: Plugin2ClassLoader.getPermissions CeilingPolicy allPerms
security: SHA-256Certificate finger print: certificateFingerPrint1
security: SHA-256Certificate finger print: certificateFingerPrint2
security: SHA-256Certificate finger print: certificateFingerPrint3
basic: Applet initialized
basic: Starting applet
basic: completed perf rollup
basic: Applet made visible
basic: Applet started
basic: Told clients applet is started