Класс SSLContext
public class SSLContext extends Object
SSLEngines. Этот класс инициализируется необязательным набором менеджеров ключей и доверия, а также источником криптографически стойких случайных байтов. Каждая реализация платформы Java должна поддерживать следующие стандартные протоколы SSLContext:
TLSv1.2TLSv1.3
- Начиная с версии:
- 1.4
- Внешние спецификации
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт объект SSLContext. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final SSLEngine |
createSSLEngine() |
Создаёт новый SSLEngine с использованием этого контекста. |
final SSLEngine |
createSSLEngine |
Создаёт новый SSLEngine с использованием этого контекста и предоставленных сведений о стороне соединения. |
final SSLSessionContext |
getClientSessionContext() |
Возвращает контекст сеансов клиента, представляющий набор SSL-сеансов, доступных для использования на этапе рукопожатия SSL-сокетов на стороне клиента. |
static SSLContext |
getDefault() |
Возвращает контекст SSL по умолчанию. |
final SSLParameters |
getDefaultSSLParameters() |
Возвращает копию SSLParameters, содержащую настройки по умолчанию для этого контекста SSL. |
static SSLContext |
getInstance |
Возвращает объект SSLContext, реализующий указанный протокол защищённых сокетов. |
static SSLContext |
getInstance |
Возвращает объект SSLContext, реализующий указанный протокол защищённых сокетов. |
static SSLContext |
getInstance |
Возвращает объект 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 |
Инициализирует этот контекст. |
static void |
setDefault |
Задаёт контекст SSL по умолчанию. |
Подробное описание конструкторов
SSLContext
protected SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)
- Параметры:
-
contextSpi— делегат -
provider— поставщик -
protocol— протокол
Подробное описание методов
getDefault
public static SSLContext getDefault() throws NoSuchAlgorithmException
Если контекст по умолчанию был задан с помощью метода SSLContext.setDefault(), возвращается он. В противном случае при первом вызове этого метода выполняется вызов SSLContext.getInstance("Default"). Если он завершается успешно, полученный объект становится контекстом SSL по умолчанию и возвращается.
Контекст по умолчанию сразу готов к использованию и не требует инициализации.
- Возвращает:
- контекст SSL по умолчанию
- Выбрасывает:
-
NoSuchAlgorithmException— если вызовSSLContext.getInstance()завершается ошибкой - Начиная с версии:
- 1.6
setDefault
public static void setDefault(SSLContext context)
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.preferredSecurity, чтобы определить предпочтительный порядок поставщиков для указанного алгоритма. Этот порядок может отличаться от порядка поставщиков, возвращаемых методомSecurity.getProviders(). - Параметры:
-
protocol— стандартное имя запрашиваемого протокола. Сведения о стандартных именах протоколов см. в разделе SSLContext спецификации стандартных имён алгоритмов безопасности Java. - Возвращает:
- новый объект
SSLContext - Выбрасывает:
-
NoSuchAlgorithmException— если ни одинProviderне поддерживает реализациюSSLContextSpiдля указанного протокола -
NullPointerException— еслиprotocolравенnull - Внешние спецификации
- См. также:
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 - Внешние спецификации
- См. также:
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 - Внешние спецификации
- См. также:
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
Используется только первый экземпляр реализации конкретного типа менеджера ключей и/или доверия в массиве. (Например, будет использоваться только первый 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()
В некоторых средах этот контекст может быть недоступен; в таком случае метод возвращает null. Например, если базовый поставщик SSL не предоставляет реализацию интерфейса SSLSessionContext, метод возвращает null. В противном случае возвращается контекст сеансов, не равный null.
- Возвращает:
- контекст сеансов сервера, связанный с этим контекстом SSL
getClientSessionContext
public final SSLSessionContext getClientSessionContext()
В некоторых средах этот контекст может быть недоступен; в таком случае метод возвращает null. Например, если базовый поставщик SSL не предоставляет реализацию интерфейса SSLSessionContext, метод возвращает null. В противном случае возвращается контекст сеансов, не равный null.
- Возвращает:
- контекст сеансов клиента, связанный с этим контекстом SSL
getDefaultSSLParameters
public final SSLParameters getDefaultSSLParameters()
Массивы наборов шифров и протоколов в параметрах всегда будут иметь значения, отличные от null.
- Возвращает:
- копию объекта SSLParameters с настройками по умолчанию
- Выбрасывает:
-
UnsupportedOperationException— если не удалось получить параметры SSL по умолчанию. - Начиная с версии:
- 1.6
getSupportedSSLParameters
public final SSLParameters getSupportedSSLParameters()
Массивы наборов шифров и протоколов в параметрах всегда будут иметь значения, отличные от null.
- Возвращает:
- копию объекта SSLParameters с поддерживаемыми настройками
- Выбрасывает:
-
UnsupportedOperationException— если не удалось получить поддерживаемые параметры SSL. - Начиная с версии:
- 1.6
© 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