JDK 28 позволит оставить в runtime только нужные CA-сертификаты
JDK 28 позволит оставить в runtime только нужные CA-сертификаты При HTTPS/TLS-соединении Java проверяет цепочку сертификатов сервера по cacerts — хранилищу удостоверяющих центров, которым доверяет JDK. Обычно в кастомный runtime попадает весь стандартный набор, даже если сервис работает лишь с несколькими внешними системами. В JDK 28 для jlink добавили плагин, который позволяет оставить только выбранные CA: jlink --cacerts "letsencryptisrgx1 [jdk],digicertglobalrootca [jdk]" Если цепочка сертификата ведёт к исключённому CA, Java ей не будет доверять и TLS-соединение не установится. Это не белый список сайтов: плагин ограничивает круг доверенных удостоверяющих центров, а не адреса для подключения. Такой runtime полезен для изолированных сервисов, контейнеров и сред с фиксированными интеграциями. Меньше доверенных CA — уже зона доверия. Но появляется новая задача сопровождения. Если внешний сервис сменит CA или цепочку сертификатов, слишком узкий trust store оборвёт соединение. Поэтому набор CA придётся версионировать, тестировать и обновлять вместе с runtime-образом. По сути, это принцип наименьших привилегий на уровне сертификатов: приложение доверяет не всем CA из поставки JDK, а только действительно нужным. Источник: Inside Java — JDK 28: jlink cacerts plugin
Канал в каталоге Максиметера
112 подписчиков · IT и технологии