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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline sedovav  
#1 Оставлено : 11 марта 2014 г. 13:21:30(UTC)
sedovav

Статус: Участник

Группы: Участники
Зарегистрирован: 31.07.2012(UTC)
Сообщений: 23
Мужчина
Российская Федерация
Откуда: Москва

Сказал «Спасибо»: 5 раз
Здравствуйте,
пытаюсь искать сертификат по subjectName, сертификат не находится:

function openStore(storeLocation, storeName, openMode){
var that = this,
capicomStore = that.createObject("CAPICOM.Store");


capicomStore.Open(storeLocation, storeName, openMode);

return capicomStore;

};

findInUserStore = function(subjectName){
var that = this,
certStore;


try{
certStore = openStore.call(that,
2 /*CAPICOM_CURRENT_USER_STORE*/,
"My" /*CAPICOM_MY_STORE*/,
2 /*CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED*/

);

if (subjectName)
return certStore.Certificates.Find(1 /*CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME*/, subjectName);

else
return certStore.Certificates;

}
finally{
if (certStore && certStore.Close)
certStore.Close();

}

};


Объект хранилища создается, по thumbprint поиск в нем работает, а по subject name нет. Всего в коллекции certStore.Certificates 10 элементов, не пустая. Тут сказано, что поиск по subject name должен работать по полному или частичному вхождению. Но я указываю тупо "CN=" в качестве строки поиска, результат нулевой. Хотя в хранилище есть сертификаты, subject name которых начинается именно так. Есть какая-то хитрость?

OS: Windows 7x64
Browser: Chrome
CSP: 3.6

Offline Kirill Sobolev  
#2 Оставлено : 11 марта 2014 г. 16:45:08(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Автор: sedovav Перейти к цитате

Объект хранилища создается, по thumbprint поиск в нем работает, а по subject name нет. Всего в коллекции certStore.Certificates 10 элементов, не пустая. Тут сказано, что поиск по subject name должен работать по полному или частичному вхождению. Но я указываю тупо "CN=" в качестве строки поиска, результат нулевой. Хотя в хранилище есть сертификаты, subject name которых начинается именно так. Есть какая-то хитрость?

Хитрости нет. Не надо указывать "CN=" - это не часть имени, а часть его строкового представления, которое использует окно показа сертификатов.
Ищите по тому, что находится справа от "=".


Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Кирилл Соболев за этот пост.
sedovav оставлено 11.03.2014(UTC)
Offline sedovav  
#3 Оставлено : 11 марта 2014 г. 17:13:03(UTC)
sedovav

Статус: Участник

Группы: Участники
Зарегистрирован: 31.07.2012(UTC)
Сообщений: 23
Мужчина
Российская Федерация
Откуда: Москва

Сказал «Спасибо»: 5 раз
Поправьте меня, если я что-то путаю, но свойство SubjectName X509-сертификата может содержать что-то вроде "CN = Ivanov Ivan Ivanovich OU = Buhgalteria O = OOO "Test 1" L = Moscow C = RU E = iivanov@test1.ru", т.е. набор ключ=значение. Мне почему-то казалось, что метод Find сравнивает значение этого поля у сертификатов с переданным значением.

Отредактировано пользователем 11 марта 2014 г. 17:19:37(UTC)  | Причина: Не указана

Offline Юрий  
#4 Оставлено : 11 марта 2014 г. 17:27:43(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
На самом деле "subjectName" состоит не из одной строки вида "CN=, O= etc.", а из набора пар: идентификатор части имени и значения части имени.
То есть "CN=Вася Пупкин" на самом деле состоит из идентификатора (OID) обозначающего "common name" и собственно значения этого имени. Самой строки, по которой вы пытаетесь искать нет - она придумана искуственно для людей.

Так и для всех остальных частей имени. Ищите информацию по "relative distinguished name" (RDN).

Отредактировано пользователем 11 марта 2014 г. 17:28:42(UTC)  | Причина: Не указана

С уважением,
Юрий Строжевский
thanks 1 пользователь поблагодарил Юрий за этот пост.
sedovav оставлено 11.03.2014(UTC)
Offline sedovav  
#5 Оставлено : 11 марта 2014 г. 17:53:14(UTC)
sedovav

Статус: Участник

Группы: Участники
Зарегистрирован: 31.07.2012(UTC)
Сообщений: 23
Мужчина
Российская Федерация
Откуда: Москва

Сказал «Спасибо»: 5 раз
Понял. Выходит, поиск по subject name - это не очень точный поиск, раз нельзя указать полный набор OID/значение в качестве критерия поиска. Лучше использовать thumbprint для идентификации сертификата для создания ЭЦП.
Смутил меня пример из хелпа - http://cpdn.cryptopro.ru...ples-sign-detached.html. В отличие от него демо-страница с Crypto Pro browser plug-in использует именно поиск по отпечатку.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.