Spec-Zone.ru › OpenJDK 24

Класс 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 v1. Он предоставляет стандартный способ доступа ко всем атрибутам сертификата X.509 версии 1. Атрибуты, специфичные для X.509 v2 или v3, недоступны через этот интерфейс. Будущая эволюция API предоставит полный доступ к полным атрибутам X.509 v3.

Основной формат 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).

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

Определение 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();
 
OR
 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 нужно изменить, чтобы инициализировать другую реализацию. Если это свойство безопасности не установлено, будет использована реализация по умолчанию. В настоящее время, из-за возможных ограничений безопасности на доступ к свойствам безопасности, это значение ищется и кэшируется во время инициализации класса, и будет использована реализация по умолчанию, если свойство безопасности недоступно.

Примечание: Классы в пакете 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 (номер версии) из сертификата.

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

equals, getEncoded, getPublicKey, hashCode, toString, verify, verify

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

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 из сертификата. Номер серии — целое число, присваиваемое центром сертификации каждому сертификату. Он должен быть уникальным для каждого сертификата, выпущенного данным центром сертификации (т.е., имя издателя и номер серии идентифицируют уникальный сертификат). Определение 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.
Возвращает:
сущность, имя которой является именем выпустившего сертификат субъекта.

getSubjectDN

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

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

Возвращает:
сущность, имя которой является именем субъекта.
См. также:
  • 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 из периода действия сертификата. См. getNotBefore для соответствующих определений ASN.1.
Возвращает:
конечную дату периода действия.
См. также:
  • 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.

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

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

getSigAlgParams

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

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

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/javax/security/cert/X509Certificate.html

Spec-Zone.ru

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