Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Построение цепочки проверки сертификата, используя кросс-сертификат
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.03.2012(UTC) Сообщений: 54 Откуда: Белгород
|
Корневой сертификат. P.S. 5d 9a 3f 44 00 00 00 00 03 2c — это кросс-сертификат. Отредактировано пользователем 18 июня 2012 г. 16:19:22(UTC)
| Причина: Не указана Вложение(я): main.cer (1kb) загружен 8 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
LucidLynx написал:Корневой сертификат.
P.S. 5d 9a 3f 44 00 00 00 00 03 2c — это кросс-сертификат. да, не дописал... в общем OS не строит цепочку для пользовательского сертификата ... установил корневой (Main001, 40 dd 93 11 4a 9e d5 99 44 c1 49 62 2e dd ac 2a) и кросс (OTR CA Root Gost, 5d 9a 3f 44 00 00 00 00 03 2c ) |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.03.2012(UTC) Сообщений: 54 Откуда: Белгород
|
У меня тоже не строит. Кстати, а вы кросс-сертификат в какое хранилище устанавливаете?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.03.2012(UTC) Сообщений: 54 Откуда: Белгород
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.11.2010(UTC) Сообщений: 11
|
Если я правильно понял, ваш корневой и кросс-сертификаты созданы с помощью разных технологий: один через OpenSSL, другой через MS CA. Есть подозрение, что из-за этого построить цепочку сертификатов стандартным способом CertGetCertificateChain не получится из-за разной интерпретации идентификатора ключа субъекта/ключа центра сертификации. Попробуйте делать это вручную. Для начала установите корневой и кросс-сертификаты в хранилище Windows. Можете для простоты запихнуть оба в "Доверенные центры сертификации", хотя идеологически правильнее кросс поместить в "Промежуточные центры сертификации". Затем, когда в коде будете проверять сертификат на действительность, откройте хранилище(а) и поищите самостоятельно нужные сертификаты чем-нибудь вроде CertFindCertificateInStore с параметром CERT_FIND_ISSUER_NAME, вычислите для найденных ид ключа субъекта/ид ключа ЦС, определив таким образом, действительно ли эти сертификаты принадлежат цепочке.
Такой способ проверки сертификата, конечно, неудобный, но это по крайней мере гарантированный выход из ситуации. Если же вы будете полностью переопределять стандартную виндовую функцию построения цепочки, не забудьте также о проверке сертификата на актуальность по дате действия и отозванность.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Wissenkrieger написал:Если я правильно понял, ваш корневой и кросс-сертификаты созданы с помощью разных технологий: один через OpenSSL, другой через MS CA. Есть подозрение, что из-за этого построить цепочку сертификатов стандартным способом CertGetCertificateChain не получится из-за разной интерпретации идентификатора ключа субъекта/ключа центра сертификации. Попробуйте делать это вручную. Для начала установите корневой и кросс-сертификаты в хранилище Windows. Можете для простоты запихнуть оба в "Доверенные центры сертификации", хотя идеологически правильнее кросс поместить в "Промежуточные центры сертификации". Затем, когда в коде будете проверять сертификат на действительность, откройте хранилище(а) и поищите самостоятельно нужные сертификаты чем-нибудь вроде CertFindCertificateInStore с параметром CERT_FIND_ISSUER_NAME, вычислите для найденных ид ключа субъекта/ид ключа ЦС, определив таким образом, действительно ли эти сертификаты принадлежат цепочке.
Такой способ проверки сертификата, конечно, неудобный, но это по крайней мере гарантированный выход из ситуации. Если же вы будете полностью переопределять стандартную виндовую функцию построения цепочки, не забудьте также о проверке сертификата на актуальность по дате действия и отозванность. В точку... |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.03.2012(UTC) Сообщений: 54 Откуда: Белгород
|
Хороший способ, спасибо. Я не использую функцию CertGetCertificateChain, а строю цепочку вручную в Java-коде. И да, у меня проблема в разной интерпретации AKI и SKI. Спасибо за совет куда класть кросс-сертификаты.
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Вообще говоря, идентификатор, помещаемый в AKI и SKI, служит лишь для упрощения поиска сертификатов при построении цепочки. Если по AKI вышестоящий сертификат найти не удалось, надо искать по имени. Проверять соответствие сертификатов в цепочке надо по имени и по подписи, AKI и SKI совпадать не обязаны. |
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Смотрю выложенные сертификаты. Проблема №1. Имя субъекта в кроссе: CN = OTR CA Root Gost L = Belgorod S = 31 C = RU E = ca@otr.ruOU = Filial O = OTR Имя издателя в пользовательском: E = ca@otr.ruCN = OTR CA Root Gost OU = Filial O = OTR L = Belgorod S = 31 C = RU Т.е. имена не совпадают. Выдавший кросс-сертификат центр переупорядочил компоненты. Как этим управлять см. здесь. |
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Проблема №2. В кроссе отсутствует расширение "Основные ограничения" (Basic constraints). Согласно http://tools.ietf.org/html/rfc5280#section-4.2.1.9, такой сертификат не может быть сертификатом УЦ, а может быть только конечным сертификатом цепочки. Чтобы это расширение появилось в кроссе (причём с флагом CA=true), оно должно или присутствовать в запросе, или быть добавлено самим центром (как - см. здесь). |
|
|
|
|
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Построение цепочки проверки сертификата, используя кросс-сертификат
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close