Spec-Zone.ru › OpenJDK 25

Класс SSLContext

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

Каждая реализация платформы 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

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

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) требуются сведения об имени удалённого узла, поэтому в таких случаях этот фабричный метод использовать не следует.

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

createSSLEngine

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

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

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

Примечание по реализации:
Выбор клиентского или серверного режима по умолчанию для соединения (D)TLS возвращаемым SSLEngine зависит от поставщика. Реализация поставщика 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/javax/net/ssl/SSLContext.html

Spec-Zone.ru

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