Класс X509Certificate
@Deprecated(since="9", forRemoval=true) public abstract class X509Certificate extends Certificate
Основной формат 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
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
X509Certificate() |
Устарело, подлежит удалению: Этот элемент API может быть удален в будущей версии. Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
checkValidity() |
Устарело, подлежит удалению: Этот элемент API может быть удален в будущей версии. Проверяет, является ли сертификат в настоящее время действительным. |
abstract void |
checkValidity |
Устарело, подлежит удалению: Этот элемент API может быть удален в будущей версии. Проверяет, попадает ли указанная дата в период действия сертификата. |
static final X509Certificate |
getInstance |
Устарело, подлежит удалению: Этот элемент API может быть удален в будущей версии. Создает объект X509Certificate и инициализирует его указанным массивом байтов. |
static final X509Certificate |
getInstance |
Устарело, подлежит удалению: Этот элемент 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
Подробное описание конструкторов
X509Certificate
public X509Certificate()
Подробное описание методов
getInstance
public static final X509Certificate getInstance(InputStream inStream) throws CertificateException
inStream. Реализация (X509Certificate — абстрактный класс) предоставляется классом, указанным в качестве значения свойства безопасности cert.provider.x509v1. Примечание: Ожидается, что в потоке ввода содержится только один DER-закодированный сертификат. Также все подклассы X509Certificate должны предоставлять конструктор следующего вида:
public <subClass>(InputStream inStream) ...
- Параметры:
-
inStream- поток ввода с данными для инициализации сертификата. - Возвращает:
- объект X509Certificate, инициализированный данными из потока ввода.
- Исключения:
-
CertificateException- если произошла ошибка инициализации класса или разбора сертификата.
getInstance
public static final X509Certificate getInstance(byte[] certData) throws CertificateException
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даты. - См. также:
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 (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()
subject (имя субъекта) из сертификата. Определение ASN.1 для этого: subject Name
См. getIssuerDN для Name и других соответствующих определений.
- Возвращает:
- сущность, имя которой является именем субъекта.
- См. также:
getNotBefore
public abstract Date getNotBefore()
notBefore из периода действия сертификата. Соответствующие определения ASN.1:
validity Validity
Validity ::= SEQUENCE {
notBefore CertificateValidityDate,
notAfter CertificateValidityDate }
CertificateValidityDate ::= CHOICE {
utcTime UTCTime,
generalTime GeneralizedTime }
- Возвращает:
- начальную дату периода действия.
- См. также:
getNotAfter
public abstract Date getNotAfter()
notAfter из периода действия сертификата. См. getNotBefore для соответствующих определений ASN.1.- Возвращает:
- конечную дату периода действия.
- См. также:
getSigAlgName
public abstract String getSigAlgName()
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()
См. getSigAlgName для соответствующих определений ASN.1.
- Возвращает:
- строку OID алгоритма подписи.
getSigAlgParams
public abstract byte[] getSigAlgParams()
См. 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
java.security.certвместо этого.