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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline nastas9  
#1 Оставлено : 10 апреля 2010 г. 23:08:26(UTC)
nastas9

Статус: Новичок

Группы: Участники
Зарегистрирован: 01.03.2010(UTC)
Сообщений: 9

Здравствуйте!
Не получается создать цепочку из сертификатов, делаю все по аналогии с данными примерами,
только не делаю запросы центру сертификации на создание сертификата.
падая, выдает:

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)

вероятно это связано с тем, что я ни как не передаю серетный ключ корневого сертификата,
а как это сделать - ума не приложу
Подскажите, пожалуйста, как можно от этого избавиться
Offline Iva  
#2 Оставлено : 12 апреля 2010 г. 16:31:31(UTC)
Iva

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

Группы: Участники
Зарегистрирован: 09.10.2008(UTC)
Сообщений: 181

Секретный ключ для построения цепочки сертификатов не нужен.
Присылайте сертификаты на support@cryptopro.ru
Offline nastas9  
#3 Оставлено : 12 апреля 2010 г. 20:45:47(UTC)
nastas9

Статус: Новичок

Группы: Участники
Зарегистрирован: 01.03.2010(UTC)
Сообщений: 9

Из вашего ответа могу сделать вывод, что построение цепочки сертификатов и создание несамоподписанного сертификата - разные вещи.
тогда как создать такой сертификат имея корневой?
Offline Iva  
#4 Оставлено : 13 апреля 2010 г. 12:12:34(UTC)
Iva

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

Группы: Участники
Зарегистрирован: 09.10.2008(UTC)
Сообщений: 181

Абсолютно разные вещи. Построение цепочки CertPathBuilder сертификатов не создает, а ищет для пользовательского сертификата в хранилище сертификат центра, которым он подписан, а для центра ищет сертификат его центра и так до корневого. Потом эту цепочку можно проверить классом CertPathValidator. Для создания сертификата можно использовать класс GostCertificateRequest.
Offline nastas9  
#5 Оставлено : 13 апреля 2010 г. 15:27:44(UTC)
nastas9

Статус: Новичок

Группы: Участники
Зарегистрирован: 01.03.2010(UTC)
Сообщений: 9

Тогда такой вопрос - как следует инициализировать класс GostCertificateRequest, чтобы он сгенерировал сертификат, подписанный имеющимся самоподписанным?
Offline Iva  
#6 Оставлено : 13 апреля 2010 г. 17:48:26(UTC)
Iva

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

Группы: Участники
Зарегистрирован: 09.10.2008(UTC)
Сообщений: 181

Инициализация обычная
Код:
/**
 * Инициализация основных полей создаваемого запроса.
 *
 * @param keyAlgName строкое представление алгоритма закрытого ключа,
 * соответствующего открытому
 * @param isServer если true, то будет создан сертификат аутентификации сервера,
 * иначе - клиента
 * @throws IOException ошибка инициализации.
 */
public void init(String keyAlgName, boolean isServer) throws IOException {

Потом вызываете
Код:
/**
 * Генерация сертификата открытого ключа субъекта с именем subject, подписанного
 * закрытым ключом издателя issuer.
 *
 * @param privKey закрытый ключ издателя, на котором осуществляется подпись
 * сертификата (ключ должен являться закрытым ключом подписи или обмена
 * алгоритма ГОСТ Р 34.10-2001).
 * @param pubKey открытый ключ субъекта, для которого генерится сертификат (ключ
 * должен соответствовать закрытому ключу подписи или обмена алгоритма ГОСТ Р
 * 34.10-2001).
 * @param subject имя субъекта в виде строки, соответвующей стандарту X.500
 * (например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").
 * @param issuer имя издателя в виде строки, соответвующей стандарту X.500
 * (например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").
 * @param algorithm имя алгоритма подписи. Если null то
 * "GOST3411withGOST3410EL"
 * @return сертификат возвращается в DER-кодировке в виде байтового массива.
 * @throws IOException исключение возникает в случае ошибки при кодировании
 * имени субъекта (возможно, строковое представление имени не соответвует
 * стандарту X.500).
 * @throws InvalidKeyException исключение возникает в случае, когда открытый
 * ключ не соответствует закрытому ключу подписи или обмена алгоритма ГОСТ Р
 * 34.10-2001.
 * @throws SignatureException исключение возникает в случае ошибки при создании
 * подписи.
 * @throws NoSuchAlgorithmException неверное имя алгоритма в privKey
 */
public byte[] generateCert(PrivateKey privKey, PublicKey pubKey, String subject,
                           String issuer, String algorithm) throws
        InvalidKeyException, IOException, SignatureException,
        NoSuchAlgorithmException {

Использовать только для тестирования.
Offline nastas9  
#7 Оставлено : 13 апреля 2010 г. 17:57:59(UTC)
nastas9

Статус: Новичок

Группы: Участники
Зарегистрирован: 01.03.2010(UTC)
Сообщений: 9

Большое Вам спасибо!!!!!!!
Offline nastas9  
#8 Оставлено : 15 апреля 2010 г. 19:38:47(UTC)
nastas9

Статус: Новичок

Группы: Участники
Зарегистрирован: 01.03.2010(UTC)
Сообщений: 9

Относительно моего первого вопроса ситуация осталась не решенной:
использую ваш пример из класса Certificate и функцию certificateChain.
сертификаты генерирую сама подписывая их друг дружкой последовательно.

Падает на строке
// построение цепочки сертификатов
final PKIXCertPathBuilderResult res =
(PKIXCertPathBuilderResult) cpb.build(params);
Offline Iva  
#9 Оставлено : 15 апреля 2010 г. 20:05:30(UTC)
Iva

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

Группы: Участники
Зарегистрирован: 09.10.2008(UTC)
Сообщений: 181

Какой Exception? Где проявляется? Стек распечатайте.
Offline nastas9  
#10 Оставлено : 15 апреля 2010 г. 22:32:06(UTC)
nastas9

Статус: Новичок

Группы: Участники
Зарегистрирован: 01.03.2010(UTC)
Сообщений: 9

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
at ru.CryptoPro.reprov.CPCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
...

падает на
final PKIXCertPathBuilderResult res =
(PKIXCertPathBuilderResult) cpb.build(params);

код из вашего примера взят.
другой ваши пример из класса OCSPValidateCert также не срабатывает на генерируемых мной сертификатах.



RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.