Форум КриптоПро
»
КриптоПро УЦ
»
КриптоПро УЦ 2.0
»
Импорт запроса на сертификат УЦ 2.0
Статус: Участник
Группы: Участники
Зарегистрирован: 05.10.2013(UTC) Сообщений: 12 Откуда: Тюмень Сказал(а) «Спасибо»: 2 раз
|
Коллеги, здравствуйте! Имеется файл запроса на сертификат, запрос на сертификат был сгенерироват через утилиту "Рутокен ЭЦП 2.0". Если данный запрос на сертификат загружать через Консоль управления УЦ (Пользователь -> Загрузить из файла), то сертификат выпускается. А если я пытаюсь загрузить его через метод сервиса SubmitCertRequest то получаю ошибку: The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework SDK documentation and inspect the server trace logs.Пример вызова: var rawRequest = RAHelper.MakeRawRequest(fileData, GlobalSettings.Default.RAThumbprint); var requestId = service.SubmitCertRequest(esodr.Employee.UserIdInRA.Value.ToString(), rawRequest, "", ""); Значение переменных fileData и rawRequest во вложении Log.txt (9kb) загружен 11 раз(а).Коллеги, что я делаю не так? Отредактировано пользователем 31 января 2019 г. 15:10:36(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 17.08.2015(UTC) Сообщений: 3,176 Откуда: Калининград Сказал «Спасибо»: 38 раз Поблагодарили: 566 раз в 543 постах
|
Здравствуйте.
Скорее всего УЦ не может декодировать. Подписывать требуется в der, а вы подписываете base64 с заголовками в юникоде. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.10.2013(UTC) Сообщений: 12 Откуда: Тюмень Сказал(а) «Спасибо»: 2 раз
|
Автор: Захар Тихонов Здравствуйте.
Скорее всего УЦ не может декодировать. Подписывать требуется в der, а вы подписываете base64 с заголовками в юникоде. Хмм, а не подскажете как сконвертировать средствами .NET?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 17.08.2015(UTC) Сообщений: 3,176 Откуда: Калининград Сказал «Спасибо»: 38 раз Поблагодарили: 566 раз в 543 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.10.2013(UTC) Сообщений: 12 Откуда: Тюмень Сказал(а) «Спасибо»: 2 раз
|
Автор: Захар Тихонов На самом деле изначально так и было реализовано. Я Инициализирова запрос на сертификат из файла запроса на сертифика CX509CertificateRequestPkcs10 req = new CX509CertificateRequestPkcs10(); req.InitializeDecode(fileData, EncodingType.XCN_CRYPT_STRING_BASE64_ANY); В итоге подписываетмый запрос без заголовков reqCer.txt (1kb) загружен 11 раз(а).Затем уже подписал и отправил в ЦУ: var rawRequest = RAHelper.MakeRawRequest(req.RawData, GlobalSettings.Default.RAThumbprint); var requestId = service.SubmitCertRequest(esodr.Employee.UserIdInRA.Value.ToString(), rawRequest, "", ""); Ошибка та же :(
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 17.08.2015(UTC) Сообщений: 3,176 Откуда: Калининград Сказал «Спасибо»: 38 раз Поблагодарили: 566 раз в 543 постах
|
Автор: sergikrus Автор: Захар Тихонов На самом деле изначально так и было реализовано. Я Инициализирова запрос на сертификат из файла запроса на сертифика CX509CertificateRequestPkcs10 req = new CX509CertificateRequestPkcs10(); req.InitializeDecode(fileData, EncodingType.XCN_CRYPT_STRING_BASE64_ANY); В итоге подписываетмый запрос без заголовков reqCer.txt (1kb) загружен 11 раз(а).Затем уже подписал и отправил в ЦУ: var rawRequest = RAHelper.MakeRawRequest(req.RawData, GlobalSettings.Default.RAThumbprint); var requestId = service.SubmitCertRequest(esodr.Employee.UserIdInRA.Value.ToString(), rawRequest, "", ""); Ошибка та же :( Попробуйте подписать и отправить reqCer1.txt (1kb) загружен 10 раз(а). |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.10.2013(UTC) Сообщений: 12 Откуда: Тюмень Сказал(а) «Спасибо»: 2 раз
|
Автор: Захар Тихонов Попробуйте подписать и отправить reqCer1.txt (1kb) загружен 10 раз(а). Если подписать содержимое файла и отправить, то ошибка: Неверный формат запроса.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 17.08.2015(UTC) Сообщений: 3,176 Откуда: Калининград Сказал «Спасибо»: 38 раз Поблагодарили: 566 раз в 543 постах
|
Автор: sergikrus
Затем уже подписал и отправил в ЦУ:
var rawRequest = RAHelper.MakeRawRequest(req.RawData, GlobalSettings.Default.RAThumbprint); var requestId = service.SubmitCertRequest(esodr.Employee.UserIdInRA.Value.ToString(), rawRequest, "", "");
Ошибка та же :(
Без подробностей не понять где ошибка. Распиши полностью весь процесс. Возможно вам поможет certutil. Проверьте что certutil успешно парсит запрос/подписанный запрос. Если не парсится, то и УЦ не примет. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.10.2013(UTC) Сообщений: 12 Откуда: Тюмень Сказал(а) «Спасибо»: 2 раз
|
Автор: Захар Тихонов Без подробностей не понять где ошибка. Распиши полностью весь процесс.
Возможно вам поможет certutil. Проверьте что certutil успешно парсит запрос/подписанный запрос. Если не парсится, то и УЦ не примет.
Алгоритм следующий: 1. Читаем файл запроса на сертификат: string fileData = Encoding.UTF8.GetString(fileContentStream.ToArray()); Значение fileData есть во вложении в первом посте. 2. Инициализируем запрос на сертификат: CX509CertificateRequestPkcs10 req = new CX509CertificateRequestPkcs10(); req.InitializeDecode(fileData, EncodingType.XCN_CRYPT_STRING_BASE64_ANY); 3. Подписываем запрос на сертификат: var adminCert = GetCert(certForSigning); var content = Encoding.Unicode.GetBytes(req.RawData); var submitted = Sign(content, adminCert); var approved = Sign(submitted, adminCert); var rawRequest = Convert.ToBase64String(approved); 4. Отправляем подписанный запрос на сертификат: var requestId = service.SubmitCertRequest(UserIdIn, rawRequest, "", ""); На первый взгляд ошибки не вижу, может у меня уже глаз замылен. А может я в принципе не корректно использую метод отправки запроса на сертификат, не посмотрите своим свежим взглядом? Админский сертификат действующий, с этим сертификатом все другие действия с сервисом проходят. Проблема именно с запросом из файла, другими способами запрос генерируется и в УЦ уходит без ошибок.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 17.08.2015(UTC) Сообщений: 3,176 Откуда: Калининград Сказал «Спасибо»: 38 раз Поблагодарили: 566 раз в 543 постах
|
Автор: sergikrus Автор: Захар Тихонов Без подробностей не понять где ошибка. Распиши полностью весь процесс.
Возможно вам поможет certutil. Проверьте что certutil успешно парсит запрос/подписанный запрос. Если не парсится, то и УЦ не примет.
Алгоритм следующий: 1. Читаем файл запроса на сертификат: string fileData = Encoding.UTF8.GetString(fileContentStream.ToArray()); Значение fileData есть во вложении в первом посте.2. Инициализируем запрос на сертификат: CX509CertificateRequestPkcs10 req = new CX509CertificateRequestPkcs10(); req.InitializeDecode(fileData, EncodingType.XCN_CRYPT_STRING_BASE64_ANY); 3. Подписываем запрос на сертификат: var adminCert = GetCert(certForSigning); var content = Encoding.Unicode.GetBytes(req.RawData); var submitted = Sign(content, adminCert); var approved = Sign(submitted, adminCert); var rawRequest = Convert.ToBase64String(approved); 4. Отправляем подписанный запрос на сертификат: var requestId = service.SubmitCertRequest(UserIdIn, rawRequest, "", ""); На первый взгляд ошибки не вижу, может у меня уже глаз замылен. А может я в принципе не корректно использую метод отправки запроса на сертификат, не посмотрите своим свежим взглядом? Админский сертификат действующий, с этим сертификатом все другие действия с сервисом проходят. Проблема именно с запросом из файла, другими способами запрос генерируется и в УЦ уходит без ошибок. В первом сообщении base64 с заголовками в юникоде. Пришлите как вы подписываете в der. |
|
|
|
|
Форум КриптоПро
»
КриптоПро УЦ
»
КриптоПро УЦ 2.0
»
Импорт запроса на сертификат УЦ 2.0
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close