SSLEngine - это стандартный способ выполнения SSL / TLS с NIO в Java.
Но это серьезно трудно использовать, и не рекомендуется для приложений, которым нужен только безопасный сокет.
К счастью, есть хотя бы одна альтернатива для библиотеки: Канал TLS оборачивает SSLContext (или SSLEngine) и предоставляет интерфейс ByteChannel, выполняя тяжелую работу внутри.
(Отказ от ответственности: я являюсь основным автором библиотеки)