Класс X509 в Jsrsasign представляет собой инструмент для работы с X.509 сертификатами в формате PEM/DER. Он позволяет разбирать сертификаты, извлекать их поля, проверять подписи и работать с расширениями стандарта X.509.
Основной набор методов сосредоточен в объекте
KJUR.asn1.x509.X509 и охватывает анализ структуры
сертификата, криптографическую проверку и извлечение метаданных.
Разбор сертификата из строки PEM.
const x = new X509();
x.parseCert(pemString);
После вызова становятся доступны все методы извлечения данных.
Возвращает версию X.509 сертификата.
Возвращает серийный номер сертификата в hex-формате.
Возвращает строковое представление издателя сертификата (Issuer).
C=US, O=Let's Encrypt, CN=R3Возвращает строковое представление субъекта сертификата (Subject).
Возвращает объект ASN.1 структуры Issuer.
getIssuerStringВозвращает ASN.1 структуру Subject.
Возвращает дату начала действия сертификата.
Возвращает дату окончания действия сертификата.
Возвращает объект публичного ключа.
const pubKey = x.getPublicKey();
Возвращает публичный ключ в hex-формате.
Возвращает ASN.1 структуру SubjectPublicKeyInfo.
Возвращает название алгоритма подписи.
Примеры:
SHA256withRSASHA384withECDSAПроверяет подпись сертификата с использованием переданного публичного ключа.
true или falseconst ok = x.verifySignatureWithPublicKey(pubKey);
Аналогичная проверка подписи.
Возвращает расширение Subject Alternative Name.
Пример результата:
DNS:www.example.com, DNS:example.com
Возвращает расширение Key Usage.
Определяет допустимые сценарии использования ключа:
Возвращает комплексный объект с данными сертификата.
Содержит:
Используется как быстрый способ получить сводку.
Хотя не всегда документированы как публичный API, в зависимости от версии Jsrsasign доступны дополнительные методы:
_getIssuer()_getSubject()_getExtInfo()Они используются внутри библиотеки и могут отличаться между версиями.
const x = new X509();
x.parseCert(pem);
console.log(x.getSubjectString());
console.log(x.getIssuerString());
console.log(x.getSerialNumberHex());
console.log(x.getNotBefore());
console.log(x.getNotAfter());
const pub = x.getPublicKey();
console.log(x.getSignatureAlgorithmName());
const valid = x.verifySignatureWithPublicKey(pub);
Методы можно условно разделить на группы:
1. Парсинг
2. Идентификация
3. Временные параметры
4. Ключи
5. Подпись
6. Расширения
7. Сводная информация