Spec-Zone.ru › OpenJDK 27

Класс X509Certificate

java.lang.Object
javax.security.cert.Certificate
javax.security.cert.X509Certificate
@Deprecated(since="9", forRemoval=true) public abstract class X509Certificate extends Certificate
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Вместо этого используйте классы из java.security.cert.
Абстрактный класс для сертификатов X.509 версии 1. Он предоставляет стандартный способ доступа ко всем атрибутам сертификата X.509 версии 1. Атрибуты, относящиеся к X.509 версии 2 или 3, недоступны через этот интерфейс. В будущих версиях API будет обеспечен полный доступ ко всем атрибутам X.509 версии 3.

Базовый формат X.509 был определён ISO/IEC и ANSI X9 и описан ниже в ASN.1:

Certificate  ::=  SEQUENCE  {
    tbsCertificate       TBSCertificate,
    signatureAlgorithm   AlgorithmIdentifier,
    signature            BIT STRING  }

Эти сертификаты широко используются для поддержки аутентификации и других функций в системах интернет-безопасности. Среди распространённых применений — Privacy Enhanced Mail (PEM), Transport Layer Security (SSL), подписание кода для доверенного распространения программного обеспечения и Secure Electronic Transactions (SET).

Управление этими сертификатами и подтверждение их подлинности выполняют центры сертификации (CA). CA — это службы, которые создают сертификаты, помещая данные в стандартный формат X.509, а затем подписывая их цифровой подписью. CA выступают в роли доверенных третьих сторон, знакомя друг с другом участников, которые не знают друг друга напрямую. Сертификаты CA подписываются либо самим центром, либо другим CA, например корневым CA.

Определение ASN.1 для tbsCertificate:

TBSCertificate  ::=  SEQUENCE  {
    version         [0]  EXPLICIT Version DEFAULT v1,
    serialNumber         CertificateSerialNumber,
    signature            AlgorithmIdentifier,
    issuer               Name,
    validity             Validity,
    subject              Name,
    subjectPublicKeyInfo SubjectPublicKeyInfo,
    }

Ниже приведён пример кода для создания экземпляра сертификата X.509:

InputStream inStream = new FileInputStream("fileName-of-cert");
X509Certificate cert = X509Certificate.getInstance(inStream);
inStream.close();
ИЛИ
byte[] certData = <certificate read from a file, say>
X509Certificate cert = X509Certificate.getInstance(certData);

В обоих случаях код, создающий экземпляр сертификата X.509, обращается к значению свойства безопасности cert.provider.x509v1, чтобы найти фактическую реализацию, либо создаёт экземпляр реализации по умолчанию.

Свойству cert.provider.x509v1 присваивается реализация X.509 по умолчанию, например:

cert.provider.x509v1=com.sun.security.cert.internal.x509.X509V1CertImpl

Чтобы создать экземпляр другой реализации, необходимо изменить значение этого свойства cert.provider.x509v1. Если это свойство безопасности не задано, будет использована реализация по умолчанию. В настоящее время из-за возможных ограничений безопасности на доступ к свойствам Security это значение ищется и кэшируется во время инициализации класса; если доступ к свойству Security невозможен, используется реализация по умолчанию.

Примечание: Классы в пакете javax.security.cert существуют для совместимости с более ранними версиями Java Secure Sockets Extension (JSSE). Вместо них новым приложениям следует использовать стандартные классы сертификатов Java SE, расположенные в java.security.cert.

С версии:
1.4
См. также:
  • Certificate
  • X509Extension
  • свойства безопасности

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

Конструктор Описание
X509Certificate()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Конструктор для вызова из подклассов.

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

Модификатор и тип Метод Описание
abstract void checkValidity()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Проверяет, действителен ли сертификат в настоящий момент.
abstract void checkValidity(Date date)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Проверяет, входит ли указанная дата в период действия сертификата.
static final X509Certificate getInstance(byte[] certData)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Создаёт объект X509Certificate и инициализирует его указанным байтовым массивом.
static final X509Certificate getInstance(InputStream inStream)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Создаёт объект X509Certificate и инициализирует его данными, считанными из входного потока inStream.
abstract Principal getIssuerDN()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает значение issuer (различающееся имя издателя) из сертификата.
abstract Date getNotAfter()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает дату notAfter из периода действия сертификата.
abstract Date getNotBefore()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает дату notBefore из периода действия сертификата.
abstract BigInteger getSerialNumber()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает значение serialNumber из сертификата.
abstract String getSigAlgName()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает название алгоритма подписи, использованного для подписи сертификата.
abstract String getSigAlgOID()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает строку OID алгоритма подписи из сертификата.
abstract byte[] getSigAlgParams()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает параметры алгоритма подписи из сертификата в кодировке DER.
abstract Principal getSubjectDN()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает значение subject (различающееся имя субъекта) из сертификата.
abstract int getVersion()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает значение version (номер версии) из сертификата.

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

equals, getEncoded, getPublicKey, hashCode, toString, verify, verify
Модификатор и тип Метод Описание
boolean equals(Object obj)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Сравнивает этот сертификат с указанным объектом на предмет равенства.
abstract byte[] getEncoded()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает закодированное представление этого сертификата.
abstract PublicKey getPublicKey()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает открытый ключ из этого сертификата.
int hashCode()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает хеш-код этого сертификата, вычисленный по его закодированному представлению.
abstract String toString()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает строковое представление этого сертификата.
abstract void verify(PublicKey key)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Проверяет, подписан ли этот сертификат с использованием закрытого ключа, соответствующего указанному открытому ключу.
abstract void verify(PublicKey key, String sigProvider)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Проверяет, подписан ли этот сертификат с использованием закрытого ключа, соответствующего указанному открытому ключу.

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

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

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

X509Certificate

public X509Certificate()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Конструктор для вызова из подклассов.

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

getInstance

public static final X509Certificate getInstance(InputStream inStream) throws CertificateException
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Создаёт объект X509Certificate и инициализирует его данными, считанными из входного потока inStream. Реализация (X509Certificate — абстрактный класс) предоставляется классом, указанным в качестве значения свойства безопасности cert.provider.x509v1.

Примечание: предполагается, что во входном потоке содержится только один сертификат в кодировке DER. Кроме того, все подклассы X509Certificate должны предоставлять конструктор следующего вида:

public <subClass>(InputStream inStream) ...
Параметры:
inStream — входной поток с данными, которые необходимо считать для инициализации сертификата.
Возвращает:
объект X509Certificate, инициализированный данными из входного потока.
Вызывает исключение:
CertificateException — если произошла ошибка инициализации класса или разбора сертификата.

getInstance

public static final X509Certificate getInstance(byte[] certData) throws CertificateException
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Создаёт объект X509Certificate и инициализирует его указанным байтовым массивом. Реализация (X509Certificate — абстрактный класс) предоставляется классом, указанным в качестве значения свойства безопасности cert.provider.x509v1.

Примечание: все подклассы X509Certificate должны предоставлять конструктор следующего вида:

public <subClass>(InputStream inStream) ...
Параметры:
certData — байтовый массив, содержащий сертификат в кодировке DER.
Возвращает:
объект X509Certificate, инициализированный данными из certData.
Вызывает исключение:
CertificateException — если произошла ошибка инициализации класса или разбора сертификата.

checkValidity

public abstract void checkValidity() throws CertificateExpiredException, CertificateNotYetValidException
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Проверяет, действителен ли сертификат в настоящий момент. Сертификат считается действительным, если текущие дата и время входят в указанный в нём период действия.

Период действия состоит из двух значений даты и времени: первой и последней даты (и времени), когда сертификат действителен. Он определяется в ASN.1 следующим образом:

validity             Validity

Validity ::= SEQUENCE {
    notBefore      CertificateValidityDate,
    notAfter       CertificateValidityDate }

CertificateValidityDate ::= CHOICE {
    utcTime        UTCTime,
    generalTime    GeneralizedTime }
Вызывает исключение:
CertificateExpiredException — если срок действия сертификата истёк.
CertificateNotYetValidException — если срок действия сертификата ещё не начался.

checkValidity

public abstract void checkValidity(Date date) throws CertificateExpiredException, CertificateNotYetValidException
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Проверяет, входит ли указанная дата в период действия сертификата. Иными словами, определяет, был бы сертификат действителен в указанную дату и время.
Параметры:
date — дата, относительно которой проверяется действительность сертификата.
Вызывает исключение:
CertificateExpiredException — если срок действия сертификата истёк относительно указанного значения date.
CertificateNotYetValidException — если срок действия сертификата ещё не начался относительно указанного значения date.
См. также:
  • checkValidity()

getVersion

public abstract int getVersion()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает значение version (номер версии) из сертификата. Определение ASN.1 для этого значения:
version         [0]  EXPLICIT Version DEFAULT v1

Version  ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
Возвращает:
номер версии из кодировки ASN.1, то есть 0, 1 или 2.

getSerialNumber

public abstract BigInteger getSerialNumber()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает значение serialNumber из сертификата. Серийный номер — это целое число, присваиваемое центром сертификации каждому сертификату. Оно должно быть уникальным для каждого сертификата, выданного данным CA (то есть имя издателя и серийный номер однозначно идентифицируют сертификат). Определение ASN.1 для этого значения:
serialNumber     CertificateSerialNumber

CertificateSerialNumber  ::=  INTEGER
Возвращает:
серийный номер.

getIssuerDN

public abstract Principal getIssuerDN()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает значение issuer (различающееся имя издателя) из сертификата. Имя издателя указывает сущность, подписавшую (и выдавшую) сертификат.

Поле имени издателя содержит различающееся имя X.500 (DN). Определение ASN.1 для этого значения:

issuer    Name

Name ::= CHOICE { RDNSequence }
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName ::=
    SET OF AttributeValueAssertion

AttributeValueAssertion ::= SEQUENCE {
                              AttributeType,
                              AttributeValue }
AttributeType ::= OBJECT IDENTIFIER
AttributeValue ::= ANY
Объект Name описывает иерархическое имя, состоящее из атрибутов, например названия страны, и соответствующих значений, например US. Тип компонента AttributeValue определяется значением AttributeType; как правило, это будет directoryString. Объект directoryString обычно представляет собой один из типов PrintableString, TeletexString или UniversalString.
Возвращает:
объект Principal, имя которого является различающимся именем издателя.

getSubjectDN

public abstract Principal getSubjectDN()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает значение subject (различающееся имя субъекта) из сертификата. Определение ASN.1 для этого значения:
subject    Name

См. getIssuerDN, где приведены Name и другие соответствующие определения.

Возвращает:
объект Principal, имя которого является именем субъекта.
См. также:
  • getIssuerDN()

getNotBefore

public abstract Date getNotBefore()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает дату notBefore из периода действия сертификата. Соответствующие определения ASN.1:
validity             Validity

Validity ::= SEQUENCE {
    notBefore      CertificateValidityDate,
    notAfter       CertificateValidityDate }

CertificateValidityDate ::= CHOICE {
    utcTime        UTCTime,
    generalTime    GeneralizedTime }
Возвращает:
дату начала периода действия.
См. также:
  • checkValidity()

getNotAfter

public abstract Date getNotAfter()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает дату notAfter из периода действия сертификата. Соответствующие определения ASN.1 см. в разделе getNotBefore.
Возвращает:
дату окончания периода действия.
См. также:
  • checkValidity()

getSigAlgName

public abstract String getSigAlgName()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает название алгоритма подписи, использованного для подписи сертификата. Например, это может быть строка "SHA-1/DSA". Определение ASN.1 для этого значения:
signatureAlgorithm   AlgorithmIdentifier

AlgorithmIdentifier  ::=  SEQUENCE  {
    algorithm               OBJECT IDENTIFIER,
    parameters              ANY DEFINED BY algorithm OPTIONAL  }
                            -- contains a value of the type
                            -- registered for use with the
                            -- algorithm object identifier value

Название алгоритма определяется по строке OID algorithm.

Возвращает:
название алгоритма подписи.

getSigAlgOID

public abstract String getSigAlgOID()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает строку OID алгоритма подписи из сертификата. OID представляется набором положительных целых чисел, разделённых точками. Например, строка "1.2.840.10040.4.3" идентифицирует алгоритм подписи SHA-1 с DSA согласно части I PKIX.

Соответствующие определения ASN.1 см. в разделе getSigAlgName.

Возвращает:
строку OID алгоритма подписи.

getSigAlgParams

public abstract byte[] getSigAlgParams()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Возвращает параметры алгоритма подписи из сертификата в кодировке DER. В большинстве случаев параметры алгоритма подписи равны null; обычно параметры указываются вместе с открытым ключом сертификата.

Соответствующие определения ASN.1 см. в разделе getSigAlgName.

Возвращает:
параметры алгоритма подписи в кодировке DER или null, если параметры отсутствуют.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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