Использование OCSP сервиса
(0 чел.) 
  • Страница:
  • 1
  • 2

ТЕМА: Использование OCSP сервиса

Использование OCSP сервиса 5 года, 10 мес. назад #600

  • itch88
  • Новый участник
  • Постов: 6
  • Репутация: 0
Здравствуйте.
Использую OCSP сервис для проверки сертификата, делаю, как в примере SDK на жаве, но только на C#
Не могу использовать криптопровайдер, так как приложение крутится на Silverlight
Делаю через HttpWebRequest, отправляю запрос на ocsp.pki.kz, сначала по порту 60001, мне приходит статус - 6, неавторизованный запрос
Хотя в примере на жаве нет никакой авторизации
Написал на саппорт, сказали изменить порт на 80, изменил, однако, ответ все тот же - 6, неавторизованный запрос
Подскажите, в чем может быть проблема?

Re: Использование OCSP сервиса 5 года, 10 мес. назад #601

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Покажите, пожалуйста, ваш запрос.
Модератор

Re: Использование OCSP сервиса 5 года, 10 мес. назад #602

  • itch88
  • Новый участник
  • Постов: 6
  • Репутация: 0
X509CertificateParser certParser = new X509CertificateParser();
X509Certificate cert = certParser.ReadCertificate(b);
certByte = getOcspPackage(cert.SerialNumber, cert, CertificateID.HashSha1);

HttpWebRequest request;
request = WebRequest.Create(" ocsp.pki.kz:80") as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/ocsp-request";
request.AllowWriteStreamBuffering = true;

request.BeginGetRequestStream(new AsyncCallback(RequestCallBack1), request);

private static void RequestCallBack1(IAsyncResult ar)
{
// Отправляем запрос, добавляем постом параметры

HttpWebRequest request = (HttpWebRequest)ar.AsyncState;

using (Stream streamPost = request.EndGetRequestStream(ar))
{
streamPost.Write(certByte, 0, certByte.Length);
streamPost.Close();

request.BeginGetResponse(new AsyncCallback(ResponseCallback1), request);
}
}

private static byte[] getOcspPackage(BigInteger serialNr, X509Certificate cacert, string hashAlg)
{
OcspReqGenerator gen = new OcspReqGenerator();
CertificateID certId = new CertificateID(hashAlg, (Org.BouncyCastle.X509.X509Certificate)cacert, serialNr);
gen.AddRequest(certId);
OcspReq req;
req = gen.Generate();
return req.GetEncoded();
}

Re: Использование OCSP сервиса 5 года, 10 мес. назад #603

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Вы сохраните в файл то, что у вас получается в переменной request.
Модератор

Re: Использование OCSP сервиса 5 года, 10 мес. назад #604

  • itch88
  • Новый участник
  • Постов: 6
  • Репутация: 0
Немного не понял, что конкретно Вам нужно, но сам OCSP запрос представляет собой 99 байт каких-то левых символов
Вложения:

Re: Использование OCSP сервиса 5 года, 10 мес. назад #605

  • ololo
  • Живу я здесь
  • Постов: 464
  • Репутация: 57
Давайте попробуем направить вас на путь истинный )
вот здесь
certByte = getOcspPackage(cert.SerialNumber, cert, CertificateID.HashSha1);

вы указываете серийный номер самого сертификата и сам сертификат передаете. вот этот второй параметр неправильный. нужно передавать сертификат УЦ, данные которого будут захэшированы. и тогда никакой ошибки авторизации не будет.
gg wp
  • Страница:
  • 1
  • 2
FaLang translation system by Faboba