Spec-Zone.ru › OpenJDK 24

Класс SSLServerSocket

java.lang.Object
java.net.ServerSocket
javax.net.ssl.SSLServerSocket
Все реализуемые интерфейсы:
Closeable, AutoCloseable
public abstract class SSLServerSocket extends ServerSocket
Этот класс расширяет ServerSocket и предоставляет защищённые сокеты сервера, использующие протоколы, такие как Secure Sockets Layer (SSL) или Transport Layer Security (TLS).

Экземпляры этого класса обычно создаются с помощью SSLServerSocketFactory. Основная функция SSLServerSocket заключается в создании SSLSocket путём установления соединений.

SSLServerSocket содержит несколько данных состояния, унаследованных созданным SSLSocket при создании сокета. Эти данные включают включённые наборы шифров и протоколы, необходимость проверки подлинности клиента и то, должен ли созданный сокет начинать установление соединения в режиме клиента или сервера. Состояние, унаследованное созданным SSLSocket, можно переопределить, вызвав соответствующие методы.

С тех пор:
1.4
См. также:
  • ServerSocket
  • SSLSocket

Краткое описание конструкторов

SSLServerSocket()
SSLServerSocket(int port)
SSLServerSocket(int port, int backlog)
SSLServerSocket(int port, int backlog, InetAddress address)
Модификатор Конструктор Описание
protected
Используется только подклассами.
protected
Используется только подклассами.
protected
Используется только подклассами.
protected
Используется только подклассами.

Краткое описание методов

Модификатор и тип Метод Описание
abstract String[] getEnabledCipherSuites()
Возвращает список наборов шифров, которые в настоящее время включены для использования новыми подключенными соединениями.
abstract String[] getEnabledProtocols()
Возвращает имена протоколов, которые в настоящее время включены для использования новыми подключенными соединениями.
abstract boolean getEnableSessionCreation()
Возвращает true, если новые сессии SSL могут быть установлены сокетами, созданными из этого сокета сервера.
abstract boolean getNeedClientAuth()
Возвращает true, если проверка подлинности клиента будет требоваться для новых подключённых серверных сокетов в режиме сервера.
SSLParameters getSSLParameters()
Возвращает SSLParameters, действующие для новых подключенных соединений.
abstract String[] getSupportedCipherSuites()
Возвращает имена наборов шифров, которые можно включить для использования в соединении SSL.
abstract String[] getSupportedProtocols()
Возвращает имена протоколов, которые можно включить для использования.
abstract boolean getUseClientMode()
Возвращает true, если подключенные соединения будут в режиме SSL-клиента.
abstract boolean getWantClientAuth()
Возвращает true, если проверка подлинности клиента будет запрошена для новых подключённых соединений сервера.
abstract void setEnabledCipherSuites(String[] suites)
Устанавливает наборы шифров, включенные для использования подключенными соединениями.
abstract void setEnabledProtocols(String[] protocols)
Управляет тем, какие протоколы включены для использования подключенными соединениями.
abstract void setEnableSessionCreation(boolean flag)
Управляет тем, могут ли быть установлены новые сессии SSL сокетами, созданными из этого сокета сервера.
abstract void setNeedClientAuth(boolean need)
Управляет тем, будут ли подключённые соединения в режиме сервера SSL, изначально настроенные на требование проверки подлинности клиента.
void setSSLParameters(SSLParameters params)
Применяет SSLParameters к вновь подключённым соединениям.
abstract void setUseClientMode(boolean mode)
Управляет тем, будут ли подключенные соединения в режиме SSL-сервера (по умолчанию) или в режиме SSL-клиента.
abstract void setWantClientAuth(boolean want)
Управляет тем, будут ли подключённые соединения в режиме сервера SSL, изначально настроенные на запрос проверки подлинности клиента.

Методы, объявленные в классе java.net.ServerSocket

accept, bind, bind, close, getChannel, getInetAddress, getLocalPort, getLocalSocketAddress, getOption, getReceiveBufferSize, getReuseAddress, getSoTimeout, implAccept, isBound, isClosed, setOption, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSocketFactory, setSoTimeout, supportedOptions, toString

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Подробное описание конструкторов

SSLServerSocket

protected SSLServerSocket() throws IOException
Используется только подклассами.

Создаёт несвязанный TCP-сокет сервера с использованием контекста аутентификации по умолчанию.

Исключения:
IOException - если при создании сокета произошла ошибка ввода-вывода

SSLServerSocket

protected SSLServerSocket(int port) throws IOException
Используется только подклассами.

Создаёт TCP-сокет сервера на порту, используя контекст аутентификации по умолчанию. Задержка соединения по умолчанию составляет пять подключений, ожидающих в очереди перед тем, как система начнёт отклонять новые запросы на подключение.

Номер порта 0 создаёт сокет на любом свободном порту.

Параметры:
port - порт, на котором нужно прослушивать подключения
Исключения:
IOException - если при создании сокета произошла ошибка ввода-вывода
IllegalArgumentException - если параметр порта находится вне указанного диапазона допустимых значений портов, который составляет от 0 до 65535 включительно.

SSLServerSocket

protected SSLServerSocket(int port, int backlog) throws IOException
Используется только подклассами.

Создаёт TCP-сокет сервера на порту, используя контекст аутентификации по умолчанию и заданную задержку соединения.

Номер порта 0 создаёт сокет на любом свободном порту.

Аргумент backlog - запрашиваемое максимальное количество ожидающих подключений к сокету. Точное значение зависит от реализации. В частности, реализация может установить максимальную длину или вообще проигнорировать параметр. Значение должно быть больше 0. Если оно меньше или равно 0, будет использоваться значение по умолчанию, зависящее от реализации.

Параметры:
port - порт, на котором нужно прослушивать подключения
backlog - запрашиваемая максимальная длина очереди входящих подключений.
Исключения:
IOException - если при создании сокета произошла ошибка ввода-вывода
IllegalArgumentException - если параметр порта находится вне указанного диапазона допустимых значений портов, который составляет от 0 до 65535 включительно.

SSLServerSocket

protected SSLServerSocket(int port, int backlog, InetAddress address) throws IOException
Используется только подклассами.

Создаёт TCP-сокет сервера на порту, используя контекст аутентификации по умолчанию, заданную задержку подключений и конкретный сетевой интерфейс. Этот конструктор используется на многоадресных хостах, таких как брандмауэры или маршрутизаторы, для управления интерфейсом, через который предоставляется сетевая служба.

Номер порта 0 создаёт сокет на любом свободном порту.

Аргумент backlog - запрашиваемое максимальное количество ожидающих подключений к сокету. Точное значение зависит от реализации. В частности, реализация может установить максимальную длину или вообще проигнорировать параметр. Значение должно быть больше 0. Если оно меньше или равно 0, будет использоваться значение по умолчанию, зависящее от реализации.

Если address равно null, приниматься будут подключения на все доступные локальные адреса.

Параметры:
port - порт, на котором нужно прослушивать подключения
backlog - запрашиваемая максимальная длина очереди входящих подключений.
address - адрес сетевого интерфейса, через который будут приниматься подключения
Исключения:
IOException - если при создании сокета произошла ошибка ввода-вывода
IllegalArgumentException - если параметр порта находится вне указанного диапазона допустимых значений портов, который составляет от 0 до 65535 включительно.

Подробное описание методов

getEnabledCipherSuites

public abstract String[] getEnabledCipherSuites()
Возвращает список шифровальных наборов, которые в настоящее время включены для использования при новых подключении.

Если этот список не был явно изменён, системный набор по умолчанию гарантирует минимальное качество обслуживания во всех включенных шифровальных наборах.

Обратите внимание, что даже если набор включен, он может никогда не быть использован. Это может произойти, если удалённый узел не поддерживает его, или его использование ограничено, или необходимые сертификаты (и закрытые ключи) для набора недоступны, или анонимный набор включен, но требуется аутентификация.

Возвращаемый массив включает шифровальные наборы из списка стандартных имён шифровальных наборов в разделе «Имена шифровальных наборов JSSE» спецификации имён алгоритмов Java Security Standard, и также может включать другие шифровальные наборы, которые поддерживает поставщик.

Возвращаемое значение:
массив включённых шифровальных наборов
См. также:
  • getSupportedCipherSuites()
  • setEnabledCipherSuites(String[])

setEnabledCipherSuites

public abstract void setEnabledCipherSuites(String[] suites)
Устанавливает наборы шифрования, включённые для использования при приёме подключений.

Наборы шифрования должны быть перечислены в getSupportedCipherSuites() как поддерживаемые. После успешного вызова этого метода, только наборы, указанные в параметре suites, включены для использования.

Наборы, требующие информацию об аутентификации, которая недоступна в контексте аутентификации этого ServerSocket, не будут использоваться ни в каком случае, даже если они включены.

Обратите внимание, что стандартный список имён шифровальных наборов можно найти в разделе «Имена шифровальных наборов JSSE» спецификации имён алгоритмов Java Security Standard. Поставщики могут поддерживать имена шифровальных наборов, не представленные в этом списке, или могут не использовать рекомендуемое имя для определённого шифровального набора.

SSLSocket, возвращаемые от accept(), наследуют это значение.

Параметры:
suites - Имена всех наборов шифрования для включения
Исключения:
IllegalArgumentException - когда один или несколько шифровальных наборов, указанных в параметре, не поддерживаются, или когда параметр равен null.
См. также:
  • getSupportedCipherSuites()
  • getEnabledCipherSuites()

getSupportedCipherSuites

public abstract String[] getSupportedCipherSuites()
Возвращает имена шифровальных наборов, которые можно включить для использования в SSL-соединении.

Обычно только подмножество из них будет включено по умолчанию, так как этот список может включать шифровальные наборы, которые не соответствуют требованиям качества обслуживания для этих значений по умолчанию. Такие шифровальные наборы полезны в специализированных приложениях.

Возвращаемый массив включает шифровальные наборы из списка стандартных имён шифровальных наборов в разделе «Имена шифровальных наборов JSSE» спецификации имён алгоритмов Java Security Standard, и также может включать другие шифровальные наборы, которые поддерживает поставщик.

Возвращаемое значение:
массив имён шифровальных наборов
См. также:
  • getEnabledCipherSuites()
  • setEnabledCipherSuites(String[])

getSupportedProtocols

public abstract String[] getSupportedProtocols()
Возвращает имена протоколов, которые можно включить для использования.
Возвращаемое значение:
массив имён поддерживаемых протоколов
См. также:
  • getEnabledProtocols()
  • setEnabledProtocols(String[])

getEnabledProtocols

public abstract String[] getEnabledProtocols()
Возвращает имена протоколов, которые в настоящее время включены для использования при новых подключениях.

Обратите внимание, что даже если протокол включён, он может никогда не использоваться. Это может произойти, если удалённый узел не поддерживает протокол, или его использование ограничено, или нет включённых шифровальных наборов, поддерживаемых протоколом.

Возвращаемое значение:
массив имён протоколов
См. также:
  • getSupportedProtocols()
  • setEnabledProtocols(String[])

setEnabledProtocols

public abstract void setEnabledProtocols(String[] protocols)
Управляет, какие конкретные протоколы включены для использования принимаемыми подключениями.

Протоколы должны быть перечислены в getSupportedProtocols() как поддерживаемые. После успешного вызова этого метода, только протоколы, перечисленные в параметре protocols, включены для использования.

SSLSocket, возвращаемые от accept(), наследуют это значение.

Параметры:
protocols - Имена всех протоколов для включения.
Исключения:
IllegalArgumentException - когда один или несколько протоколов, указанных в параметре, не поддерживаются или когда параметр protocols равен null.
См. также:
  • getEnabledProtocols()
  • getSupportedProtocols()

setNeedClientAuth

public abstract void setNeedClientAuth(boolean need)
Управляет тем, будет ли серверный режим SSLSockets, первоначально настроенный для требования аутентификации клиента.

Настройка аутентификации клиента для сокета может быть следующей:

  • аутентификация клиента требуется
  • запрос аутентификации клиента
  • аутентификация клиента не требуется

В отличие от setWantClientAuth(boolean), если параметр принятого сокета установлен, и клиент выбирает не предоставлять информацию об аутентификации, переговоры прекратятся, и соединение будет разорвано.

Вызов этого метода переопределяет любые предыдущие настройки, сделанные этим методом или setWantClientAuth(boolean).

Начальные унаследованные настройки могут быть переопределены вызовом SSLSocket.setNeedClientAuth(boolean) или SSLSocket.setWantClientAuth(boolean).

Параметры:
need - установить в true, если требуется аутентификация клиента, или в false, если аутентификация клиента не требуется.
См. также:
  • getNeedClientAuth()
  • setWantClientAuth(boolean)
  • getWantClientAuth()
  • setUseClientMode(boolean)

getNeedClientAuth

public abstract boolean getNeedClientAuth()
Возвращает true, если аутентификация клиента будет требоваться для вновь accept серверных сокетов SSLSocket.

Начальные унаследованные настройки могут быть переопределены вызовом SSLSocket.setNeedClientAuth(boolean) или SSLSocket.setWantClientAuth(boolean).

Возвращает:
true, если аутентификация клиента требуется, или false, если аутентификация клиента не требуется.
См. также:
  • setNeedClientAuth(boolean)
  • setWantClientAuth(boolean)
  • getWantClientAuth()
  • setUseClientMode(boolean)

setWantClientAuth

public abstract void setWantClientAuth(boolean want)
Управляет тем, будет ли серверный режим SSLSockets, первоначально настроенный для запроса аутентификации клиента.

Настройка аутентификации клиента для сокета может быть следующей:

  • аутентификация клиента требуется
  • запрос аутентификации клиента
  • аутентификация клиента не требуется

В отличие от setNeedClientAuth(boolean), если параметр принятого сокета установлен, и клиент выбирает не предоставлять информацию об аутентификации, переговоры продолжатся.

Вызов этого метода переопределяет любые предыдущие настройки, сделанные этим методом или setNeedClientAuth(boolean).

Начальные унаследованные настройки могут быть переопределены вызовом SSLSocket.setNeedClientAuth(boolean) или SSLSocket.setWantClientAuth(boolean).

Параметры:
want - установить в true, если требуется запрос аутентификации клиента, или в false, если аутентификация клиента не требуется.
См. также:
  • getWantClientAuth()
  • setNeedClientAuth(boolean)
  • getNeedClientAuth()
  • setUseClientMode(boolean)

getWantClientAuth

public abstract boolean getWantClientAuth()
Возвращает true, если аутентификация клиента будет запрошена для вновь принятых соединений серверного режима.

Начальные унаследованные настройки могут быть переопределены вызовом SSLSocket.setNeedClientAuth(boolean) или SSLSocket.setWantClientAuth(boolean).

Возвращает:
true, если запрос аутентификации клиента, или false, если аутентификация клиента не требуется.
См. также:
  • setWantClientAuth(boolean)
  • setNeedClientAuth(boolean)
  • getNeedClientAuth()
  • setUseClientMode(boolean)

setUseClientMode

public abstract void setUseClientMode(boolean mode)
Управляет тем, будут ли принятые соединения в (по умолчанию) серверном режиме SSL или в режиме SSL клиента.

Серверы обычно аутентифицируют себя, а клиенты не обязаны этого делать.

В редких случаях TCP-серверы должны действовать в режиме SSL-клиента для новых подключений. Например, клиенты FTP получают сокеты сервера и прослушивают их для обратных соединений от сервера. Клиент FTP использовал бы SSLServerSocket в режиме «клиент» для принятия обратного соединения, в то время как сервер FTP использовал бы SSLSocket с отключенным режимом «клиент» для инициации подключения. Во время результата рукопожатия существующие сессии SSL могут быть повторно использованы.

SSLSocket, возвращаемые от accept(), наследуют эту настройку.

Параметры:
mode - true, если вновь принятые соединения должны использовать режим SSL-клиента.
См. также:
  • getUseClientMode()

getUseClientMode

public abstract boolean getUseClientMode()
Возвращает true, если принятые соединения будут в режиме SSL-клиента.
Возвращает:
true, если соединение должно использовать режим SSL-клиента.
См. также:
  • setUseClientMode(boolean)

setEnableSessionCreation

public abstract void setEnableSessionCreation(boolean flag)
Управляет тем, могут ли новые сессии SSL быть установлены сокетами, созданными из этого сокета сервера.

SSLSocket, возвращаемые от accept(), наследуют эту настройку.

Параметры:
flag - true указывает, что сессии могут быть созданы; это значение по умолчанию. false указывает, что существующая сессия должна быть возобновлена.
См. также:
  • getEnableSessionCreation()

getEnableSessionCreation

public abstract boolean getEnableSessionCreation()
Возвращает true, если новые сессии SSL могут быть установлены сокетами, созданными из этого сокета сервера.
Возвращает:
true указывает, что сессии могут быть созданы; это значение по умолчанию. false указывает, что существующая сессия должна быть возобновлена
См. также:
  • setEnableSessionCreation(boolean)

getSSLParameters

public SSLParameters getSSLParameters()
Возвращает SSLParameters, применяемые к вновь принятым соединениям. Списки шифров и протоколов возвращаемого SSLParameters всегда не null.
Возвращает:
SSLParameters, применяемые к вновь принятым соединениям
С момента:
1.7
См. также:
  • setSSLParameters(SSLParameters)

setSSLParameters

public void setSSLParameters(SSLParameters params)
Применяет SSLParameters к вновь принятым соединениям.

Это означает:

  • Если params.getCipherSuites() не null, setEnabledCipherSuites() вызывается с этим значением.
  • Если params.getProtocols() не null, setEnabledProtocols() вызывается с этим значением.
  • Если params.getNeedClientAuth() или params.getWantClientAuth() возвращают true, setNeedClientAuth(true) и setWantClientAuth(true) вызываются соответственно; в противном случае вызывается setWantClientAuth(false).
  • Если params.getServerNames() не null, сокет настраивает свои имена серверов с этим значением.
  • Если params.getSNIMatchers() не null, сокет настраивает свои обработчики SNI с этим значением.
Параметры:
params - параметры
Исключения:
IllegalArgumentException - если вызов setEnabledCipherSuites() или setEnabledProtocols() завершается с ошибкой
С момента:
1.7
См. также:
  • getSSLParameters()

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/javax/net/ssl/SSLServerSocket.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API