Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline xsfera  
#1 Оставлено : 20 ноября 2014 г. 11:19:46(UTC)
xsfera

Статус: Активный участник

Группы: Участники
Зарегистрирован: 09.07.2014(UTC)
Сообщений: 84
Российская Федерация
Откуда: Тольятти

Сказал(а) «Спасибо»: 1 раз
Добрый день.

Пытаюсь клиентом на iOS подключиться к серверу посредством stunnel.
В логе следующее:
2014.11.20 12:17:43 LOG3[1294:116228096]: Error 0x20 ((unknown)) returned by CertVerifyCertificateChainPolicy!
2014.11.20 12:17:43 LOG3[1294:116228096]: Error 0x20 when validate certificate
2014.11.20 12:17:43 LOG3[1294:116228096]: Error 0x80092004 returned by VeryfySertChain
2014.11.20 12:17:43 LOG3[1294:116228096]: **** Erro

Полагаю не может подтвердить валидность, а именно нет корневого сертификата.

Корневой сертификат импортирую следующим образом, при этом Import succeeded происходит:
void CertImport(BYTE *pfx, DWORD pfxlen)
{
HCERTSTORE rootStore = 0;

CRYPT_DATA_BLOB blob;
blob.cbData = pfxlen;
blob.pbData = (BYTE*)pfx;

PCCERT_CONTEXT pctx;
pctx = CertCreateCertificateContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,blob.pbData,blob.cbData);

static HCRYPTPROV hCryptProv = 0; // дескриптор CSP

if(!CryptAcquireContext(&hCryptProv,0,NULL,PROV_GOST_2001_DH,CRYPT_VERIFYCONTEXT))
{
HandleError("Cryptographic context could not be acquired.");
}

rootStore = CertOpenSystemStore(hCryptProv, "ROOT");

if (CertAddCertificateContextToStore(rootStore, pctx, CERT_STORE_ADD_NEW, 0)) {
wprintf(L"Import succeeded.\n");
}
}

Не верно вызываю хранилище?
Offline xsfera  
#2 Оставлено : 20 ноября 2014 г. 11:50:57(UTC)
xsfera

Статус: Активный участник

Группы: Участники
Зарегистрирован: 09.07.2014(UTC)
Сообщений: 84
Российская Федерация
Откуда: Тольятти

Сказал(а) «Спасибо»: 1 раз
Попробовал как описано тут: https://www.cryptopro.ru...sts&t=7493#post48012

Через панель по адресу: https://cryptopro.ru:5555/ui

Сертификат установился, но ошибка та же
Offline Максим Коллегин  
#3 Оставлено : 20 ноября 2014 г. 12:58:22(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
С корневым должно быть все нормально - цепочка строится выше по коду.
Знания в базе знаний, поддержка в центре поддержки
Offline Максим Коллегин  
#4 Оставлено : 20 ноября 2014 г. 13:34:26(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
Если есть сертификат техподдержки разработчика - создавайте запрос на https://support.cryptopro.ru - будем смореть. Нужно отлаживать.
Знания в базе знаний, поддержка в центре поддержки
Offline xsfera  
#5 Оставлено : 20 ноября 2014 г. 14:10:38(UTC)
xsfera

Статус: Активный участник

Группы: Участники
Зарегистрирован: 09.07.2014(UTC)
Сообщений: 84
Российская Федерация
Откуда: Тольятти

Сказал(а) «Спасибо»: 1 раз
В моем случае нет аутентификации пользователя, необходимо только подтверждение сервера.

Мне важно верно ли Я обращаюсь rootStore = CertOpenSystemStore(hCryptProv, "ROOT"); чтобы положить туда корневой сертификат?
Offline Максим Коллегин  
#6 Оставлено : 20 ноября 2014 г. 14:35:14(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
да, но может быть нюанс с кодировокой. попробуйте функцию certopenstore. имя должно быть в юникоде
Знания в базе знаний, поддержка в центре поддержки
Offline xsfera  
#7 Оставлено : 20 ноября 2014 г. 19:03:57(UTC)
xsfera

Статус: Активный участник

Группы: Участники
Зарегистрирован: 09.07.2014(UTC)
Сообщений: 84
Российская Федерация
Откуда: Тольятти

Сказал(а) «Спасибо»: 1 раз
К сожалению и с юникодом тоже сообщает об успешном импортировании, но stunnel выдает все ту же ошибку.

rootStore = CertOpenStore(
CERT_STORE_PROV_SYSTEM,
0,
hCryptProv,
CERT_SYSTEM_STORE_LOCAL_MACHINE,
L"Root");
Offline Максим Коллегин  
#8 Оставлено : 20 ноября 2014 г. 19:35:33(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
Попробуйте вызывать те же функции: CertGetCertificateChain и CertVerifyCertificateChainPolicy CERT_CHAIN_POLICY_SSL
Знания в базе знаний, поддержка в центре поддержки
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.