Я пишу прокси-сервер Java, который обменивается данными с другими серверами с помощью SSL. Все это хорошо работает с использованием ServerSocketFactory вместе с хранилищем ключей и trustore, которые заполняются сертификатом сервера.
Интересно, есть ли в Java 7 способ отключить сертификацию и доверять всем серверам? (и да, я знаю, что это рискованно - но прокси предназначен только для внутреннего использования)
Я видел несколько примеров реализации TrustManager с использованием реализации X509TrustManager, хотя, очевидно, Java 7 не поддерживает эти контракты, а сам X509TrustManager устарел.
Цените ваш совет и любой пример кода на Java 7, который работает.
2 ответа
Я реализовал java.security.Provider с использованием кода, упомянутого в этом посте.
https://code.google.com/p/misc-utils/wiki/JavaHttpsUrl
Примечание: это второе предлагаемое решение.
В этом посте не упоминается, что вам также следует добавить хранилище ключей, чтобы все работало. Таким образом, этот аргумент виртуальной машины также должен быть установлен (если только вы не получите сообщение об ошибке « нет общих наборов шифров »):
-Djavax.net.ssl.keyStore=KEYSTORE LOCATION
-Djavax.net.ssl.keyStorePassword=YOUR PASS
Надеюсь, это поможет вам, так как во всех местах, где я смотрел, эта часть не упоминалась.
Прокси-серверы MITM (то есть серверы, способные просматривать трафик SSL / TLS) обычно используют свой собственный ЦС для создания поддельных сертификатов для запрашиваемого сайта.
Установите этот сертификат CA в хранилище доверенных сертификатов вашего клиента вместо того, чтобы настраивать код. Это гораздо более чистое решение, и в конечном итоге его проще развернуть.
(Для более прямого ответа на ваш вопрос, бесчисленные примеры доверенных менеджеров, которые ничего не делают, все еще отлично работают в Java 7.)
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].