OCSP
🔗 OCSP-адрес:
http://pki.sertum-pro.ru/ocsp2012/ocsp.srf
1. Общие сведения
1.1 Описание
OCSP (Online Certificate Status Protocol) — протокол, определённый в RFC 6960, позволяющий проверять статус выданного сертификата X.509 в режиме реального времени. В отличие от списков отзыва CRL, OCSP позволяет получить актуальную информацию о конкретном сертификате без необходимости загрузки и обработки всего списка отзывов.
ООО "СЕРТУМ-ПРО" предоставляет OCSP-сервис для проверки статуса сертификатов, выданных УЦ Контур (в том числе сертификатов ГОСТ Р 34.10-2012).
2. Поддерживаемые стандарты и протоколы
2.1 Протоколы
- RFC 6960 — Online Certificate Status Protocol (OCSP)
- HTTP/1.1 — передача запросов и ответов через HTTP(S)
- PKIX — Public Key Infrastructure X.509
2.2 Алгоритмы подписи и хэширования
GOST R 34.10-2012
(256 бит и 512 бит)RSA
,ECDSA
- Хэш-алгоритмы:
GOST R 34.11-2012
,SHA-1
,SHA-256
,SHA-384
,SHA-512
⚠️ SHA-1 не рекомендуется использовать из-за уязвимостей.
3. Формат запроса
OCSP-запрос представляет собой DER-кодированный объект типа OCSPRequest
.
3.1 Структура запроса
OCSPRequest ::= SEQUENCE {
tbsRequest TBSCertRequest,
optionalSignature [0] EXPLICIT Signature OPTIONAL
}
TBSCertRequest
:
TBSCertRequest ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
requestorName [1] EXPLICIT GeneralName OPTIONAL,
requestList SEQUENCE OF Request,
requestExtensions [2] EXPLICIT Extensions OPTIONAL
}
Request
:
Request ::= SEQUENCE {
reqCert CertID,
singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL
}
CertID
:
CertID ::= SEQUENCE {
hashAlgorithm AlgorithmIdentifier,
issuerNameHash OCTET STRING,
issuerKeyHash OCTET STRING,
serialNumber INTEGER
}
4. Формат ответа
Ответ сервера — это DER-кодированный объект OCSPResponse
.
4.1 Структура ответа
OCSPResponse ::= SEQUENCE {
responseStatus OCSPResponseStatus,
responseBytes [0] EXPLICIT ResponseBytes OPTIONAL
}
Возможные значения responseStatus
:
Значение | Описание |
---|---|
successful (0) |
Запрос успешно обработан |
malformedRequest (1) |
Неверно сформированный запрос |
internalError (2) |
Внутренняя ошибка сервера |
tryLater (3) |
Сервер временно недоступен |
sigRequired (5) |
Для запроса требуется подпись |
unauthorized (6) |
Запрос отклонён из-за отсутствия прав |
Если responseStatus = successful
, то поле responseBytes
содержит:
ResponseBytes ::= SEQUENCE {
responseType OBJECT IDENTIFIER,
response OCTET STRING
}
Где responseType
обычно равен id-pkix-ocsp-basic
(1.3.6.1.5.5.7.48.1.1
), а response
— DER-кодированный BasicOCSPResponse
.
5. Работа с сервисом
5.1 Получение OCSP-ответа через командную строку (OpenSSL)
Шаг 1: Создать запрос к OCSP-серверу
openssl ocsp -issuer ca.crt \
-cert user.crt \
-reqout request.der \
-no_nonce \
-url http://pki.sertum-pro.ru/ocsp2012/ocsp.srf
Шаг 2: Отправить запрос на сервер
curl -H "Content-Type: application/ocsp-request" \
--data-binary @request.der \
http://pki.sertum-pro.ru/ocsp2012/ocsp.srf > response.der
Шаг 3: Проверить ответ
openssl ocsp -respin response.der -text -noverify
5.2 Использование в CryptoPro CSP
В CryptoPro CSP можно проверить статус сертификата через GUI или с помощью командной строки:
certmgr -list -store uMy
cryptcp -verify -cert <thumbprint>
CryptoPro автоматически использует OCSP-сервера, указанные в AIA полях сертификата.
6. Сертификаты
Сертификат OCSP-подписи можно найти в цепочке доверия сертификатов, выпущенных УЦ Контур.
7. Требования к клиентам
- Поддержка протокола HTTP/1.1
- Умение формировать и отправлять DER-закодированные OCSP-запросы
- Поддержка алгоритмов шифрования, используемых в цепочке доверия
- Доступ к корневым и промежуточным сертификатам для проверки ответа
8. Часто задаваемые вопросы
❓ Как проверить OCSP-ответ?
Используйте openssl ocsp -respin <файл>
или специализированные средства проверки PKI.
❓ Можно ли использовать GOST-сертификаты?
Да, сервис поддерживает сертификаты ГОСТ Р 34.10-2012.
❓ Что делать, если OCSP-сервер не отвечает?
Проверьте подключение к интернету, попробуйте повторить запрос позже, либо используйте альтернативные методы проверки (например, CRL).