Какие комплекты шифров поставляются с Java jdk1.7.0_03 и / или как мне обеспечить их установку RMI? - PullRequest
2 голосов
/ 10 марта 2012

Я ломал голову над этой проблемой, здесь , и внезапно подумал проверить, доступны ли ЛЮБЫЕ наборы шифров для RMI-сервера.Итак, я поместил следующий код в ПРОСТО, ДО запуска реестра RMI:

msg("trustStore: "+System.getProperty("javax.net.ssl.trustStore"));
msg("trustStorePassword: "+System.getProperty("javax.net.ssl.trustStorePassword"));
msg("keyStore: "+System.getProperty("javax.net.ssl.keyStore")); 
msg("keyStorePassword: "+System.getProperty("javax.net.ssl.keyStorePassword"));
msg("rmi.server.hostname: "+System.getProperty("java.rmi.server.hostname"));msg("supportedCipherSuites: "+System.getProperty("javax.rmi.ssl.client.supportedCipherSuites"));
msg("enabledCipherSuites: "+System.getProperty("javax.rmi.ssl.client.enabledCipherSuites"));
msg("debug: "+System.getProperty("javax.net.debug"));

(где MSG просто отправляет данные через System.out.println.)

... И к моему ужасуобнаружил, что "supportedCipherSuites" это NULL!

Что?!

Я просмотрел все творения, "использовал Google", и еще невыяснил, как я должен заполнить мою установку подходящими комплектами шифров.... Я не ищу ничего особенного, просто обычные простые вещи подойдут!

Arg!

PS Гдевыход реестра RMI из javax.net.debug?Не могу найти это нигде!Спасибо ....

1 Ответ

2 голосов
/ 10 марта 2012

Список поддерживаемых комплектов шифров в Oracle JRE 7 вы найдете в документации провайдера SunJSSE : есть две таблицы для включенных и отключенных по умолчанию соответственно.

Iне стоит особо беспокоиться о System.getProperty("javax.rmi.ssl.client.supportedCipherSuites")) возврате null: эти системные свойства предназначены для настройки параметров, а не для API JRE / RMI для публикации его текущего состояния.Кроме того, нет упоминания об этом системном свойстве в документации , где задокументировано javax.rmi.ssl.client.enabledCipherSuites.Если вы хотите использовать определенные комплекты шифров, установите javax.rmi.ssl.client.enabledCipherSuites, не читайте его.

Получение свойств javax.net.ssl.* не обязательно скажет вам, что на самом деле используются значения (см. thisответ ).Например, null javax.net.ssl.trustStore по-прежнему будет использовать хранилище доверенных сертификатов по умолчанию.

То же самое для javax.net.debug: вам нужно установить и использовать API Net / SSL, а не наоборот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...