У меня есть апплет Java, который подписан, который загружает отлично в v7u67, но с v7u71 он больше не загружается. Кроме того, апплет все еще загружается отлично в v7u71 на моем тестовом сервере, который находится на локальной машине, хотя теги JAR и <object>
весьма похожи. В обоих случаях доступ к веб-сайту осуществляется с помощью HTTPS (хотя сервер тестирования использует самозаверяющий сертификат для HTTPS).Java 1.7.0u71 не может загрузить апплет, который может обладать 1.7.0u67
Полный журнал трассировки/отладки доступен по адресу http://pastebin.com/7JNavVVq с примечаниями об утесе ниже.
security: Expected Main URL: https://popcornmanager.com/manager/grid.1.2.8e.jar
basic: Plugin2ClassLoader.addURL parent called for https://popcornmanager.com/manager/grid.1.2.8e.jar
security: Accessing keys and certificate in Mozilla user profile: null
security: JSS is not configured
network: Cache entry not found [url: https://popcornmanager.com/manager/grid.1.2.8e.jar, version: null]
network: Connecting https://popcornmanager.com/manager/grid.1.2.8e.jar with proxy=DIRECT
network: Cache entry not found [url: file:/C:/Program%20Files%20(x86)/Java/jre7/lib/ext/sunec.jar, version: null]
basic: Loading Java Applet ...
network: Cache entry not found [url: file:/C:/Program%20Files%20(x86)/Java/jre7/lib/ext/sunjce_provider.jar, version: null]
network: Connecting http://popcornmanager.com:443/ with proxy=DIRECT
security: Loading SSL Root CA certificates from C:\Program Files (x86)\Java\jre7\lib\security\cacerts
security: Loaded SSL Root CA certificates from C:\Program Files (x86)\Java\jre7\lib\security\cacerts
security: Obtain certificate collection in SSL Root CA certificate store {x2}
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Loaded blacklisted.certs file: D:\AppData\LocalLow\Sun\Java\Deployment\security\blacklisted.certs
security: SHA-256Certificate finger print: E0E41A12187A9196056D01CC1774D98FED57B0B6FD8A035C815C35073EB0A54B
security: SHA-256Certificate finger print: 09ED6E991FC3273D8FEA317D339C02041861973549CFA6E1558F411F11211AA3
security: SHA-256Certificate finger print: 18F8A7A151B4EC280898093DF5BD537CA099CC277405D0281DE0DADFD14420DA
security: SHA-256Certificate finger print: 58D017279CD4DC63ABDDB196A6C9906C30C4E08783EAE8C1609954D69355596B
security: Checking if SSL certificate is in Deployment permanent certificate store
security: Obtain certificate collection in SSL Root CA certificate store {x4}
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
...
Caused by: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
...
Caused by: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
...
[try to load https://popcornmanager.com/manager/grid.1.2.8e.jar again]
[try to load https://popcornmanager.com/manager/com/popcornmanager/datagrid/DataGrid.class as above but doesn't throw an exception, twice]
java.lang.ClassNotFoundException: com.popcornmanager.datagrid.DataGrid
...
basic: load: class com.popcornmanager.datagrid.DataGrid not found.
java.lang.ClassNotFoundException: com.popcornmanager.datagrid.DataGrid
...
Ignored exception: java.lang.ClassNotFoundException: com.popcornmanager.datagrid.DataGrid
basic: Dialog type is not candidate for embedding
security: Reset deny session certificate store
basic: Removed progress listener: [email protected]
security: Reset deny session certificate store
Похоже, что какой-либо сертификат недействителен в соответствии с правилами Java, но v7u67 действительно считал его действительным. Я не могу сказать, является ли его сертификат HTTPS сертификата подписи кода (оба из которых действительны). HTTPS передает тесты проверки браузеров.
Испытание можно посмотреть по телефону https://popcornmanager.com/test/TestDataGrid.php.
То, что я заглянул в:
- Пробовал Chrome, Firefox и IE на Windows, и все показывают одни и те же симптомы.
- Пробные
<applet>
и<object>
теги с и без.class
в пути кода. - Просмотрел все ошибки, исправленные в обновлении, и ни один из них не объясняет это изменение в поведении.
- Настройка минимальных параметров безопасности Java («Средний»), добавление сайта в список исключений и добавление сертификата HTTPS вручную в сертификаты Java (похоже, сертификат кода был автоматически добавлен, когда я нажал «Запомнить», в диалоговом окне безопасности).
Результат, кажется, предлагает что проблема связана с сертификатом подписи кода, а не с сертификатом SSL. Вы подтвердили, что корневой ЦС сертификата подписи кода находится в списке известных ЦС в Java? Возможно, этот список изменился между обновлением 67 и обновлением 71. – VGR
Конечный корень CA - это «AddTrust External CA Root», который я могу найти в списке корней 7u45 и 7u71 (у меня не было сразу 7u67). Список с использованием http://stackoverflow.com/questions/3508050/how-can- i-get-a-list-of-trusted-root-certificates-in-java. Записи идентичны. Есть ли способ лучше определить, какой сертификат вызывает проблему и почему? Должен ли я связаться с эмитентом трески сертификат e-sign (он по-прежнему действителен)? – coderforlife
К сожалению. Я только заметил, что ваше самое верхнее исключение - это исключение SSLHandshakeException, которое указывает на проблему с сертификатом HTTPS, а не с сертификатом подписи кода. Однако я написал небольшую программу, которая дает ваш .jar URLClassLoader, и 'classLoader.loadClass (« com.popcornmanager.datagrid.DataGrid »)' отлично работал для меня, используя Java 1.7.0_72. – VGR