Класс X509Certificate

@Deprecated(since="9")
public abstract class X509Certificate
extends Certificate
Устаревшее.
Используйте классы в 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).

Эти сертификаты управляются и гарантируются Центрами сертификации (ЦС). ЦС — это сервисы, которые создают сертификаты, помещая данные в стандартный формат 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, security properties

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

Конструктор Описание
X509Certificate()

Устаревшее.

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

Модификатор и тип Метод Описание
abstract void checkValidity()

Устаревшее.

Проверяет, является ли сертификат в настоящее время действительным.

abstract void checkValidity​(Date date)

Устаревшее.

Проверяет, попадает ли указанная дата в период действия сертификата.

static X509Certificate getInstance​(byte[] certData)

Устаревшее.

Создает объект X509Certificate и инициализирует его указанным массивом байтов.

static X509Certificate getInstance​(InputStream inStream)

Устаревшее.

Создает объект X509Certificate и инициализирует его данными, прочитанными из потока ввода inStream.

abstract Principal getIssuerDN()

Устаревшее.

Возвращает значение issuer (имя отличительной характеристики эмитента) из сертификата.

abstract Date getNotAfter()

Устаревшее.

Возвращает дату notAfter из периода действия сертификата.

abstract Date getNotBefore()

Устаревшее.

Возвращает дату notBefore из периода действия сертификата.

abstract BigInteger getSerialNumber()

Устаревшее.

Возвращает значение serialNumber из сертификата.

abstract String getSigAlgName()

Устаревшее.

Возвращает имя алгоритма подписи для алгоритма подписи сертификата.

abstract String getSigAlgOID()

Устаревшее.

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

abstract byte[] getSigAlgParams()

Устаревшее.

Возвращает параметры DER-кодированного алгоритма подписи из алгоритма подписи этого сертификата.

abstract Principal getSubjectDN()

Устаревшее.

Возвращает значение subject (имя отличительной характеристики субъекта) из сертификата.

abstract int getVersion()

Устаревшее.

Возвращает значение 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()
Устаревшее.

Методы

getInstance

public static final X509Certificate getInstance(InputStream inStream)
                                         throws CertificateException
Устаревшее.

Инициализирует объект 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
Устаревшее.

Инициализирует объект X509Certificate указанным массивом байтов. Реализация (X509Certificate — абстрактный класс) предоставляется классом, указанным в качестве значения свойства безопасности cert.provider.x509v1.

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

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

checkValidity

public abstract void checkValidity()
                            throws CertificateExpiredException,
                                   CertificateNotYetValidException
Устаревшее.

Проверяет, является ли сертификат в данный момент действительным. Действительным считается, если текущая дата и время находятся в пределах срока действия, указанного в сертификате.

Срок действия состоит из двух значений даты/времени: первой и последней дат (и времени), в течение которых сертификат действителен. Определяется в 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
Устаревшее.

Проверяет, попадает ли указанная дата в срок действия сертификата. Другими словами, определяет, будет ли сертификат действителен в указанную дату/время.

Параметры:
date — дата для проверки, чтобы определить, действителен ли этот сертификат в указанную дату/время.
Исключение:
CertificateExpiredException — если сертификат просрочен относительно предоставленной date.
CertificateNotYetValidException — если сертификат еще не действителен относительно предоставленной date.
См. также:
checkValidity()

getVersion

public abstract int getVersion()
Устаревшее.

Возвращает значение 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()
Устаревшее.

Возвращает значение serialNumber из сертификата. Номер серии — целое число, назначенное центром сертификации каждому сертификату. Он должен быть уникальным для каждого сертификата, выпущенного данным ЦС (т.е., имя издателя и номер серии идентифицируют уникальный сертификат). Определение ASN.1 для этого:

serialNumber     CertificateSerialNumber

 CertificateSerialNumber  ::=  INTEGER

Возвращает:
номер серии.

getIssuerDN

public abstract Principal getIssuerDN()
Устаревшее.

Возвращает значение issuer (имя субъекта-издателя) из сертификата. Имя издателя идентифицирует субъект, который подписал (и выпустил) сертификат.

Поле имени издателя содержит имя X.500 distinguished name (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()
Устаревшее.

Возвращает значение subject (имя субъекта) из сертификата. Определение ASN.1 для этого:

subject    Name

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

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

getNotBefore

public abstract Date getNotBefore()
Устаревшее.

Возвращает notBefore дату из периода действия сертификата. Соответствующие определения ASN.1:

validity             Validity

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

 CertificateValidityDate ::= CHOICE {
     utcTime        UTCTime,
     generalTime    GeneralizedTime }

Возвращает:
начальную дату периода действия.
См. также:
checkValidity()

getNotAfter

public abstract Date getNotAfter()
Устаревшее.

Возвращает notAfter дату из периода действия сертификата. См. getNotBefore для соответствующих определений ASN.1.

Возвращает:
конечную дату периода действия.
См. также:
checkValidity()

getSigAlgName

public abstract String getSigAlgName()
Устаревшее.

Возвращает имя алгоритма подписи для алгоритма подписи сертификата. Пример — строка "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()
Устаревшее.

Возвращает строку OID алгоритма подписи из сертификата. OID представляется набором положительных целых чисел, разделенных точками. Например, строка "1.2.840.10040.4.3" идентифицирует алгоритм подписи SHA-1 с DSA, согласно части I PKIX.

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

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

getSigAlgParams

public abstract byte[] getSigAlgParams()
Устаревшее.

Возвращает DER-кодированные параметры алгоритма подписи из алгоритма подписи этого сертификата. В большинстве случаев параметры алгоритма подписи равны null; параметры обычно предоставляются вместе с открытым ключом сертификата.

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

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

© 1993, 2020, 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/11/docs/api/java.base/javax/security/cert/X509Certificate.html

Spec-Zone .ru
спецификации, руководства, описания, API