Класс SSLContext
public class SSLContext extends Object
SSLEngine. Этот класс инициализируется необязательным набором менеджеров ключей и доверия и источником защищённых случайных байтов. Каждая реализация платформы 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 по умолчанию. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
Подробное описание конструкторов
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) требуют сведений об имени удалённого узла; в этом случае этот фабричный метод использовать не следует.
- Примечание по реализации:
- Зависит от провайдера, будет ли возвращённый 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()
В некоторых средах этот контекст может быть недоступен; в таком случае данный метод возвращает 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.