Статус: Участник
Группы: Участники
Зарегистрирован: 03.08.2011(UTC) Сообщений: 26
|
Есть Крипто-про CSP 3.6, который включает в себя revocation provide. Я так понимаю он встраивается в систему вместо дефолтного(в реестре посмотрел) И по-идее должен по умолчанию проверять статус сертификата при запросе CryptoAPI Windows, я использую CAPICOM который по сути является оберткой функций CryptoAPI. Сертификат получил из тестового центра Крипто-про, он предоставляет сервис OCSP, пытаюсь проверить статус этого сертификата, но проверка выдает что статус сертификата неизвестен, но при установке CRL с тестового центра Крипто-про статус определяется как валидный. В сертификате имеется ссылка на OCSP сервер тестового центра Крипто-про, и вроде бы запрос OCSP должен был бы идти по умолчанию к центру но что-то не получается проверить. Можете помочь?
|
|
|
|
Статус: Padawan
Группы: Администраторы
Зарегистрирован: 02.12.2010(UTC) Сообщений: 1,381 Откуда: Москва Сказала «Спасибо»: 11 раз Поблагодарили: 69 раз в 47 постах
|
Цитата:Крипто-про CSP 3.6, который включает в себя revocation provide А Вы его установили? Цитата:пытаюсь проверить статус этого сертификата как проверяете? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.08.2011(UTC) Сообщений: 26
|
Да, установил. В ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 1\CertDllVerifyRevocation\DEFAULT стоит значение : C:\ Program Files\Crypto Pro\CSP\reprov.dll. В панели КриптоПро PKI тоже есть пункт КриптоПро Revocation Provider. А проверяю так Код:function CheckDigitalCertificates(Certificate)
{
var CAPICOM_CHECK_ONLINE_ALL = 495;
var CAPICOM_CHECK_OFFLINE_ALL = 503;
var CAPICOM_INFO_SUBJECT_SIMPLE_NAME = 0;
var CAPICOM_TRUST_IS_NOT_TIME_VALID = 1;
var CAPICOM_TRUST_IS_NOT_TIME_NESTED = 2;
var CAPICOM_TRUST_IS_REVOKED = 4;
var CAPICOM_TRUST_IS_NOT_SIGNATURE_VALID = 8;
var CAPICOM_TRUST_IS_NOT_VALID_FOR_USAGE = 16;
var CAPICOM_TRUST_IS_UNTRUSTED_ROOT = 32;
var CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN = 64;
var CAPICOM_TRUST_IS_CYCLIC = 128;
var CAPICOM_TRUST_IS_PARTIAL_CHAIN = 65536;
var CAPICOM_TRUST_CTL_IS_NOT_TIME_VALID = 131072;
var CAPICOM_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 262144;
var CAPICOM_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 524288;
Certificate.IsValid().CheckFlag = CAPICOM_CHECK_ONLINE_ALL;
var CertStat;
if (Certificate.IsValid().Result == true)
{
document.write("<div style = 'color : green'>The certificate is valid</div>");
}
else
{
var Chain = new ActiveXObject("CAPICOM.Chain");
Chain.Build(Certificate);
if (CAPICOM_TRUST_IS_NOT_SIGNATURE_VALID & Chain.Status)
{
document.write("<div style = 'color : red'>The certificate or one of the certificates in the certificate chain does not have a valid signature</div>");
delete Chain;
return false;
}
if ((CAPICOM_TRUST_IS_UNTRUSTED_ROOT & Chain.Status) || (CAPICOM_TRUST_IS_PARTIAL_CHAIN & Chain.Status))
{
document.write("<div style = 'color : red'>Unable to chain to a trusted authority</div>");
delete Chain;
return false;
}
if (CAPICOM_TRUST_IS_CYCLIC & Chain.Status)
{
document.write("<div style = 'color : red'>One of the certificates in the chain was issued by a certification authority that the original certificate had certified</div>");
delete Chain;
return false;
}
if (CAPICOM_TRUST_CTL_IS_NOT_TIME_VALID & Chain.Status)
{
document.write("<div style = 'color : red'>A CTL used to create this chain was not time valid</div>");
delete Chain;
return false;
}
if (CAPICOM_TRUST_CTL_IS_NOT_SIGNATURE_VALID & Chain.Status)
{
document.write("<div style = 'color : red'>A CTL used to create this chain did not have a valid signature</div>");
delete Chain;
return false;
}
if (CAPICOM_TRUST_CTL_IS_NOT_VALID_FOR_USAGE & Chain.Status)
{
document.write("<div style = 'color : red'>A CTL used to create this chain is not valid for this usage</div>");
delete Chain;
return false;
}
if (CAPICOM_TRUST_IS_NOT_TIME_VALID & Chain.Status)
{
document.write("<div style = 'color : red'>This certificate or one of the certificates in the certificate chain is not time valid</div>");
delete Chain;
return false;
}
if (CAPICOM_TRUST_IS_NOT_TIME_NESTED & Chain.Status)
{
document.write("<div style = 'color : red'>Certificates in the chain are not properly time nested</div>");
delete Chain;
return false;
}
if (CAPICOM_TRUST_IS_NOT_VALID_FOR_USAGE & Chain.Status)
{
document.write("<div style = 'color : red'>The certificate or certificate chain is not valid for its proposed usage</div>");
delete Chain;
return false;
}
if (CAPICOM_TRUST_IS_REVOKED & Chain.Status)
{
document.write("<div style = 'color : red'>Trust for this certificate or one of the certificates in the certificate chain has been revoked</div>");
delete Chain;
return false;
}
if (CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN & Chain.Status)
{
document.write("<div style = 'color : red'>The revocation status of the certificate or one of the certificates in the certificate chain is unknown</div>");
delete Chain;
return false;
}
}
}
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,393 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 717 раз в 621 постах
|
А лицензия на reprov валидна? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.08.2011(UTC) Сообщений: 26
|
maxdm написал:А лицензия на reprov валидна? да, до 29.11.2011 и попутный еще вопрос: можно ли через тестовый УЦ КриптоПро отозвать выданный сертификат, чтобы проверить работу OCSP? Отредактировано пользователем 29 августа 2011 г. 18:00:02(UTC)
| Причина: Не указана
|
|
|
|
Статус: Padawan
Группы: Администраторы
Зарегистрирован: 02.12.2010(UTC) Сообщений: 1,381 Откуда: Москва Сказала «Спасибо»: 11 раз Поблагодарили: 69 раз в 47 постах
|
Для чего? OCSP должен дать ответ- если сертификат как валиден, так и отозван |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.08.2011(UTC) Сообщений: 26
|
А КриптоПро сначала будет проверять по OCSP и в случае неудачи по CRL?
|
|
|
|
Статус: Padawan
Группы: Администраторы
Зарегистрирован: 02.12.2010(UTC) Сообщений: 1,381 Откуда: Москва Сказала «Спасибо»: 11 раз Поблагодарили: 69 раз в 47 постах
|
Наш Revocation provider сначала пойдет по ссылкам в сертификате на OCSP службу. Если нормального ответа не получит, то пойдет по адресу, заданному групповыми политиками(если такой указан). Если всеми описанными способами не получит ответ- проверять начинает виндовый ревок.провайдер. Тот в свою очередь сначала ищет локально СОС, потом идет по ссылке на CRL из сертификата(или не идет, если он по ней уже ходил и СОС еще не истек-использует файловый кеш) |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close