Класс SSLContext
public class SSLContext extends Object
SSLEngine. Этот класс инициализируется с набором (необязательным) менеджеров ключей и доверия, а также источником защищённых случайных байтов. Каждая реализация Java платформы обязана поддерживать следующие стандартные SSLContext протокол:
TLSv1.2
- Since:
- 1.4
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт объект SSLContext. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final SSLEngine |
createSSLEngine() |
Создаёт новый SSLEngine с использованием этого контекста. |
final SSLEngine |
createSSLEngine |
Создаёт новый SSLEngine с использованием этого контекста, используя справочную информацию о peer. |
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- SSLContext - Исключения:
-
NullPointerException- если контекст равен null -
SecurityException- если менеджер безопасности существует и его методcheckPermissionне позволяетSSLPermission("setDefaultSSLContext") - С момента:
- 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 Security Standard Algorithm Names для получения информации о стандартных именах протоколов. - Возвращает:
- новый объект
SSLContext - Исключения:
-
NoSuchAlgorithmException- если ни один поставщик не поддерживает реализациюProviderдля указанного протокола -
NullPointerException- еслиprotocolявляетсяnull - См. также:
getInstance
public static SSLContext getInstance(String protocol, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
SSLContext, который реализует указанный протокол защищённого сокета. Возвращается новый объект SSLContext, инкапсулирующий реализацию SSLContextSpi от указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.
Обратите внимание, что список зарегистрированных поставщиков можно получить через метод Security.getProviders().
- Параметры:
-
protocol- стандартное имя запрошенного протокола. См. раздел SSLContext в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных именах протоколов. -
provider- имя поставщика. - Возвращает:
- новый объект
SSLContext - Исключения:
-
IllegalArgumentException- если имя поставщикаnullили пустое -
NoSuchAlgorithmException- если реализацияSSLContextSpiдля указанного протокола недоступна от указанного поставщика -
NoSuchProviderException- если указанный поставщик не зарегистрирован в списке поставщиков безопасности -
NullPointerException- еслиprotocolявляетсяnull - См. также:
getInstance
public static SSLContext getInstance(String protocol, Provider provider) throws NoSuchAlgorithmException
SSLContext, который реализует указанный протокол защищённого сокета. Возвращается новый объект SSLContext, инкапсулирующий реализацию SSLContextSpi от указанного объекта поставщика. Обратите внимание, что указанный объект поставщика не обязательно должен быть зарегистрирован в списке поставщиков.
- Параметры:
-
protocol- стандартное имя запрошенного протокола. См. раздел SSLContext в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных именах протоколов. -
provider- экземпляр поставщика. - Возвращает:
- новый объект
SSLContext - Исключения:
-
IllegalArgumentException- если поставщикnull -
NoSuchAlgorithmException- если реализацияSSLContextSpiдля указанного протокола недоступна от указанного объектаProvider -
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- источники принятия решений о доверии к аутентификации peer или 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()
Массивы ciphersuites и protocols всегда будут иметь ненулевые значения.
- Возвращает:
- копию объекта SSLParameters со значениями параметров по умолчанию
- Исключения:
-
UnsupportedOperationException- если параметры SSL по умолчанию получить не удалось. - С тех пор:
- 1.6
getSupportedSSLParameters
public final SSLParameters getSupportedSSLParameters()
Массивы ciphersuites и protocols всегда будут иметь ненулевые значения.
- Возвращает:
- копию объекта SSLParameters с поддерживаемыми значениями параметров
- Исключения:
-
UnsupportedOperationException- если поддерживаемые параметры SSL получить не удалось. - С тех пор:
- 1.6
© 1993, 2023, 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/21/docs/api/java.base/javax/net/ssl/SSLContext.html