0
- 30.09.2019 - 07:20
|
Как подписать строку с помощью ключа в .pem файле.
| | ||
1
- 30.09.2019 - 08:22
|
хм.. а у тебя акцент на что - как подписать строку? - или проблема именно с pem? .pem легко конвертировать в практически любой другой удобоваримый формат. А вот как подписать именно строку - не знаю. Подписываю только файлы. Но файл это конечно же не строка. | | ||
2
- 30.09.2019 - 10:07
|
Вот так делаю Сертификат = Новый СертификатКриптографии("c:\temp\с.pem"); ДвочиныеДанные = ПолучитьДвоичныеДанныеИзHexСтроки(DigestValue); Signaturee = Base64Строка(МенеджерКриптографии.Подписать(Двочин ыеДанные,, Сертификат)); Со строкой проблем нет, проблема с .pem Ошибка при вызове конструктора (СертификатКриптографии) Сертификат = Новый СертификатКриптографии("c:\temp\c.pem"); Если получаю сертификат из хранилища, вот так, подписывает Сертификат = Хранилище.НайтиПоСерийномуНомеру(ПолучитьДвоичныеД анныеИзHexСтроки(СерийныйНомерСертификата)) | | ||
3
- 30.09.2019 - 10:29
|
Ошибку не полностью скопировал: Ошибка при вызове конструктора (СертификатКриптографии) Сертификат = Новый СертификатКриптографии("c:\temp\c.pem"); по причине: Ошибка при создании контекста сертификата. | | ||
4
- 30.09.2019 - 10:40
| если это действительно pem, то попробовать сменить расширение файла на .cer | | ||
5
- 30.09.2019 - 11:42
|
(4) не помогло, та же ошибка Внутри вот что -----BEGIN PUBLIC KEY----- ...1m...tzT... -----END PUBLIC KEY----- большинство символов заменил точками для конспирации | | ||
6
- 30.09.2019 - 11:50
|
А файл pem вообще предназначен для подписывания? По моим скромным познаниям в криптографии - не предназначен: судя по "PUBLIC KEY" - это открытый ключ (сертификат), а для подписи нужен закрытый ключ. Ну, и ссылка в тему: https://www.azfiles.ru/extension/pem.html | | ||
7
- 30.09.2019 - 14:24
| Цитата:
правда, тэги при этом вроде бы такие ----- BEGIN CERTIFICATE ----- ----- END CERTIFICATE ----- или ----- BEGIN PRIVATE KEY----- ----- END PRIVATE KEY----- в том числе может быть и открытый ключ (public key), как у автора. Цитата:
| | ||
8
- 30.09.2019 - 14:49
|
(2) (2) да дался тебе этот pem "конвертировать pem в" - яндекс выдает мне 23 миллиона результатов. конвертируй, устанавливай в хранилище - все в твоих руках. | | ||
9
- 30.09.2019 - 15:47
|
Добавлю (4)+100 (5) не просто сменить расширение, а конвертировать (если это у тебя PUBLIC KEY, то можно и онлайн, в противном случае PRIVATE KEY в интернете естественно светить не надо) | | ||
10
- 30.09.2019 - 16:29
| Аналогично: Цитата:
Подпись ставится закрытым ключом, которого у ТС просто нет. А при помощи открытого ключа (сертификата) она проверяется, если нужно. И хватит тут сиськи мять. | | ||
11
- 30.09.2019 - 18:46
|
э нет, не скажи, сиськи периодически мять полезно, профилактика от мастопатии. в данном же случае вопрос интересный чисто с прикладной точки зрения ибо в учебнике: Цитата:
знаю только, что с файлами .cer работает отлично. а вот про другие типы файлов - молчок. не нашла. так что не суть важно, что там конкретно внутри у автора в .pem, суть в том, что pem надо конвертировать. Он до подписания и не доходит, у него раньше вылетает. Или как то можно не конвертировать? | | ||
12
- 30.09.2019 - 20:32
| Как раз важно: в PEM нет закрытого ключа, см. ссылку в (6). Да пофиг, конвертируй - не конвертируй, закрытый ключ от этого не появится. А без него подписать не получится, об этом и на ИТС пишут: Цитата:
| | ||
13
- 01.10.2019 - 08:13
|
Экий ты невнимательный. Я сразу, еще в (1), разделила вопрос на два. и проблему с .pem вынесла отдельно. Допустим у кого то другого возникнет аналогичный вопрос с .pem, содержащим private.key Или у кого то возникнет обратная задача - проверить подпись с помощью открытого ключа .pem с public.key В любом случае задача получить сертификат из .pem имеет отдельное прикладное значение. тогда вопрос в сабже для этого другого останется актуальным. Меня не интересовал конкретный файл .pem с конкретным содержимым у автора. С этим понятно, чего тут обсуждать. Собственно говоря, меня интересовала только одна часть сабжа, а что именно конкретно, изложено в (11) И вот в связи с этим помнится мне, что у Олега Гинзбурга aka Abrahams aka Smaharba встречала я где-то, как он изящным движением руки превращал то ли .pem в .cer, то ли наоборот. Безо всяких openssl и тому подобных приблуд. То есть обходился без ручной готовки файла. Вот только хоть убей не помню где и когда. | | ||
14
- 15.09.2021 - 10:54
|
Удалось победить ошибку? Ошибка при вызове конструктора (СертификатКриптографии) Сертификат = Новый СертификатКриптографии("c:\temp\c.pem"); у меня такая же проблема.... сгенерированы сертификаты с помощью openssl Генерация закрытого ключа $ openssl genrsa -out privatekey.pem 4096 Получение открытого ключа $ openssl rsa -in privatekey.pem -pubout -out publickey.pem Теперь мне нужно в заголовок запроса поместить подпись запроса, вычисленная по телу POST-запроса с использованием приватного ключа. | |
| Интернет-форум Краснодарского края и Краснодара |