Spec-Zone.ru › OpenJDK 27

Класс SSLContext

java.lang.Object
javax.net.ssl.SSLContext
public class SSLContext extends Object
Экземпляры этого класса представляют собой реализацию протокола защищённых сокетов, которая служит фабрикой для фабрик защищённых сокетов или SSLEngine. Этот класс инициализируется необязательным набором менеджеров ключей и доверия и источником защищённых случайных байтов.

Каждая реализация платформы Java должна поддерживать следующие стандартные протоколы SSLContext:

  • TLSv1.2
  • TLSv1.3
Эти протоколы описаны в разделе SSLContext Спецификации стандартных имён алгоритмов безопасности Java. Ознакомьтесь с документацией к выпуску вашей реализации, чтобы узнать, поддерживаются ли какие-либо другие протоколы.
С версии:
1.4
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

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

SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)
Модификатор Конструктор Описание
protected
Создаёт объект SSLContext.

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

Модификатор и тип Метод Описание
final SSLEngine createSSLEngine()
Создаёт новый SSLEngine с использованием этого контекста.
final SSLEngine createSSLEngine(String peerHost, int peerPort)
Создаёт новый SSLEngine с использованием этого контекста и сведений о другом узле, предоставленных в качестве подсказки.
final SSLSessionContext getClientSessionContext()
Возвращает контекст сеансов клиента, представляющий набор сеансов SSL, доступных для использования на этапе рукопожатия SSL-сокетов на стороне клиента.
static SSLContext getDefault()
Возвращает контекст SSL по умолчанию.
final SSLParameters getDefaultSSLParameters()
Возвращает копию SSLParameters, указывающую настройки по умолчанию для этого контекста SSL.
static SSLContext getInstance(String protocol)
Возвращает объект SSLContext, реализующий указанный протокол защищённых сокетов.
static SSLContext getInstance(String protocol, String provider)
Возвращает объект SSLContext, реализующий указанный протокол защищённых сокетов.
static SSLContext getInstance(String protocol, Provider provider)
Возвращает объект SSLContext, реализующий указанный протокол защищённых сокетов.
final String getProtocol()
Возвращает имя протокола этого объекта SSLContext.
final Provider getProvider()
Возвращает провайдера этого объекта SSLContext.
final SSLSessionContext getServerSessionContext()
Возвращает контекст сеансов сервера, представляющий набор сеансов SSL, доступных для использования на этапе рукопожатия SSL-сокетов на стороне сервера.
final SSLServerSocketFactory getServerSocketFactory()
Возвращает объект ServerSocketFactory для этого контекста.
final SSLSocketFactory getSocketFactory()
Возвращает объект SocketFactory для этого контекста.
final SSLParameters getSupportedSSLParameters()
Возвращает копию SSLParameters, указывающую поддерживаемые настройки для этого контекста SSL.
final void init(KeyManager[] km, TrustManager[] tm, SecureRandom random)
Инициализирует этот контекст.
static void setDefault(SSLContext context)
Задаёт контекст SSL по умолчанию.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.

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

SSLContext

protected SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)
Создаёт объект SSLContext.
Параметры:
contextSpi — делегат
provider — провайдер
protocol — протокол

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

getDefault

public static SSLContext getDefault() throws NoSuchAlgorithmException
Возвращает контекст SSL по умолчанию.

Если контекст по умолчанию был задан с помощью метода SSLContext.setDefault(), возвращается он. В противном случае первый вызов этого метода инициирует вызов SSLContext.getInstance("Default"). Если он завершается успешно, полученный объект становится контекстом SSL по умолчанию и возвращается.

Контекст по умолчанию готов к немедленному использованию и не требует инициализации.

Возвращает:
контекст SSL по умолчанию
Вызывает исключение:
NoSuchAlgorithmException — если вызов SSLContext.getInstance() завершается неудачно
С версии:
1.6

setDefault

public static void setDefault(SSLContext context)
Задаёт контекст SSL по умолчанию. Он будет возвращаться при последующих вызовах getDefault(). Контекст по умолчанию должен быть готов к немедленному использованию и не требовать инициализации.
Параметры:
context — контекст SSL
Вызывает исключение:
NullPointerException — если контекст равен null
С версии:
1.6

getInstance

public static SSLContext getInstance(String protocol) throws NoSuchAlgorithmException
Возвращает объект SSLContext, реализующий указанный протокол защищённых сокетов.

Этот метод проходит по списку зарегистрированных провайдеров безопасности, начиная с наиболее предпочтительного. Возвращается новый объект SSLContext, инкапсулирующий реализацию SSLContextSpi первого провайдера, поддерживающего указанный протокол.

Обратите внимание, что список зарегистрированных провайдеров можно получить с помощью метода Security.getProviders().

Примечание по реализации:
Референсная реализация JDK дополнительно использует свойство jdk.security.provider.preferred Security для определения предпочтительного порядка провайдеров для указанного алгоритма. Этот порядок может отличаться от порядка провайдеров, возвращаемых методом Security.getProviders().
Параметры:
protocol — стандартное имя запрашиваемого протокола. Сведения о стандартных именах протоколов см. в разделе SSLContext Спецификации стандартных имён алгоритмов безопасности Java.
Возвращает:
новый объект SSLContext
Вызывает исключение:
NoSuchAlgorithmException — если ни один Provider не поддерживает реализацию SSLContextSpi для указанного протокола
NullPointerException — если protocol равен null
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getInstance

public static SSLContext getInstance(String protocol, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращает объект SSLContext, реализующий указанный протокол защищённых сокетов.

Возвращается новый объект SSLContext, инкапсулирующий реализацию SSLContextSpi указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке провайдеров безопасности.

Обратите внимание, что список зарегистрированных провайдеров можно получить с помощью метода Security.getProviders().

Параметры:
protocol — стандартное имя запрашиваемого протокола. Сведения о стандартных именах протоколов см. в разделе SSLContext Спецификации стандартных имён алгоритмов безопасности Java.
provider — имя провайдера.
Возвращает:
новый объект SSLContext
Вызывает исключение:
IllegalArgumentException — если имя провайдера равно null или пусто
NoSuchAlgorithmException — если у указанного провайдера отсутствует реализация SSLContextSpi для указанного протокола
NoSuchProviderException — если указанный провайдер не зарегистрирован в списке провайдеров безопасности
NullPointerException — если protocol равен null
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getInstance

public static SSLContext getInstance(String protocol, Provider provider) throws NoSuchAlgorithmException
Возвращает объект SSLContext, реализующий указанный протокол защищённых сокетов.

Возвращается новый объект SSLContext, инкапсулирующий реализацию SSLContextSpi из указанного объекта Provider. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке провайдеров.

Параметры:
protocol — стандартное имя запрашиваемого протокола. Сведения о стандартных именах протоколов см. в разделе SSLContext Спецификации стандартных имён алгоритмов безопасности Java.
provider — экземпляр провайдера.
Возвращает:
новый объект SSLContext
Вызывает исключение:
IllegalArgumentException — если провайдер равен null
NoSuchAlgorithmException — если указанный объект Provider не предоставляет реализацию SSLContextSpi для указанного протокола
NullPointerException — если protocol равен null
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getProtocol

public final String getProtocol()
Возвращает имя протокола этого объекта SSLContext.

Это то же имя, которое было указано в одном из вызовов getInstance, создавших этот объект SSLContext.

Возвращает:
имя протокола этого объекта SSLContext.

getProvider

public final Provider getProvider()
Возвращает провайдера этого объекта SSLContext.
Возвращает:
провайдер этого объекта SSLContext

init

public final void init(KeyManager[] km, TrustManager[] tm, SecureRandom random) throws KeyManagementException
Инициализирует этот контекст. Любой из первых двух параметров может быть равен null; в этом случае среди установленных провайдеров безопасности выполняется поиск реализации соответствующей фабрики с наивысшим приоритетом. Аналогично, параметр генератора случайных чисел может быть равен null; в этом случае будет использована реализация по умолчанию.

Для каждого типа реализации менеджера ключей и/или доверия используется только первый экземпляр в массиве. (Например, будет использован только первый javax.net.ssl.X509KeyManager в массиве.)

Параметры:
km — источники ключей аутентификации или null
tm — источники решений о доверии к аутентификации другого узла или null
random — источник случайных чисел для этого генератора или null
Вызывает исключение:
KeyManagementException — если эта операция завершается неудачно

getSocketFactory

public final SSLSocketFactory getSocketFactory()
Возвращает объект SocketFactory для этого контекста.
Возвращает:
объект SocketFactory
Вызывает исключение:
UnsupportedOperationException — если базовый провайдер не реализует эту операцию.
IllegalStateException — если SSLContextImpl требует инициализации, а вызов init() не выполнялся

getServerSocketFactory

public final SSLServerSocketFactory getServerSocketFactory()
Возвращает объект ServerSocketFactory для этого контекста.
Возвращает:
объект ServerSocketFactory
Вызывает исключение:
UnsupportedOperationException — если базовый провайдер не реализует эту операцию.
IllegalStateException — если SSLContextImpl требует инициализации, а вызов init() не выполнялся

createSSLEngine

public final SSLEngine createSSLEngine()
Создаёт новый SSLEngine с использованием этого контекста.

Приложения, использующие этот фабричный метод, не предоставляют подсказок для внутренней стратегии повторного использования сеансов. Если такие подсказки нужны, следует использовать createSSLEngine(String, int).

Некоторые наборы шифров (например, Kerberos) требуют сведений об имени удалённого узла; в этом случае этот фабричный метод использовать не следует.

Примечание по реализации:
Зависит от провайдера, будет ли возвращённый SSLEngine по умолчанию использовать режим клиента или сервера для соединения (D)TLS. Реализация провайдера JDK SunJSSE по умолчанию использует режим сервера. Однако рекомендуется всегда явно задавать нужный режим, вызывая SSLEngine.setUseClientMode() перед вызовом других методов SSLEngine.
Возвращает:
объект SSLEngine
Вызывает исключение:
UnsupportedOperationException — если базовый провайдер не реализует эту операцию.
IllegalStateException — если SSLContextImpl требует инициализации, а вызов init() не выполнялся
С версии:
1.5

createSSLEngine

public final SSLEngine createSSLEngine(String peerHost, int peerPort)
Создаёт новый SSLEngine с использованием этого контекста и предоставленных в качестве подсказки сведений о другом узле.

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

Некоторые наборы шифров (например, Kerberos) требуют сведений об имени удалённого узла; в этом случае необходимо указать peerHost.

Примечание по реализации:
Зависит от провайдера, будет ли возвращённый SSLEngine по умолчанию использовать режим клиента или сервера для соединения (D)TLS. Реализация провайдера JDK SunJSSE по умолчанию использует режим сервера. Однако рекомендуется всегда явно задавать нужный режим, вызывая SSLEngine.setUseClientMode() перед вызовом других методов SSLEngine.
Параметры:
peerHost — неавторитетное имя узла
peerPort — неавторитетный порт
Возвращает:
новый объект SSLEngine
Вызывает исключение:
UnsupportedOperationException — если базовый провайдер не реализует эту операцию.
IllegalStateException — если SSLContextImpl требует инициализации, а вызов init() не выполнялся
С версии:
1.5

getServerSessionContext

public final SSLSessionContext getServerSessionContext()
Возвращает контекст сеансов сервера, представляющий набор сеансов SSL, доступных для использования на этапе рукопожатия SSL-сокетов на стороне сервера.

В некоторых средах этот контекст может быть недоступен; в таком случае данный метод возвращает null. Например, если базовый SSL-провайдер не предоставляет реализацию интерфейса SSLSessionContext, этот метод возвращает null. В противном случае возвращается контекст сеансов, отличный от null.

Возвращает:
контекст сеансов сервера, связанный с этим контекстом SSL

getClientSessionContext

public final SSLSessionContext getClientSessionContext()
Возвращает контекст сеансов клиента, представляющий набор сеансов SSL, доступных для использования на этапе рукопожатия SSL-сокетов на стороне клиента.

В некоторых средах этот контекст может быть недоступен; в таком случае данный метод возвращает null. Например, если базовый SSL-провайдер не предоставляет реализацию интерфейса SSLSessionContext, этот метод возвращает null. В противном случае возвращается контекст сеансов, отличный от null.

Возвращает:
контекст сеансов клиента, связанный с этим контекстом SSL

getDefaultSSLParameters

public final SSLParameters getDefaultSSLParameters()
Возвращает копию SSLParameters, указывающую настройки по умолчанию для этого контекста SSL.

Массивы наборов шифров и протоколов в параметрах всегда имеют значения, отличные от null.

Возвращает:
копию объекта SSLParameters с настройками по умолчанию
Вызывает исключение:
UnsupportedOperationException — если не удалось получить параметры SSL по умолчанию.
С версии:
1.6

getSupportedSSLParameters

public final SSLParameters getSupportedSSLParameters()
Возвращает копию SSLParameters, указывающую поддерживаемые настройки для этого контекста SSL.

Массивы наборов шифров и протоколов в параметрах всегда имеют значения, отличные от null.

Возвращает:
копию объекта SSLParameters с поддерживаемыми настройками
Вызывает исключение:
UnsupportedOperationException — если не удалось получить поддерживаемые параметры SSL.
С версии:
1.6

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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