Atom Лента - Форум КриптоПро - Тема:В контейнере закрытого ключа, отсутствуют сертификаты. - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:Vkontejjnerezakrytogokljucha,otsutstvujutsertifikaty.-10:1Copyright 2024 Форум КриптоПро2024-03-28T17:44:24Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruМаксим Коллегинhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=3&name=Максим КоллегинМаксим Коллегинhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=3&name=Максим КоллегинAndrei9385https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=50636&name=Andrei9385Andrei9385https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=50636&name=Andrei9385Andrei9385https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=50636&name=Andrei9385Andrei9385https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=50636&name=Andrei9385Андрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *Andrei9385https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=50636&name=Andrei9385Greyhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=30581&name=Greytwo_oceanshttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=36490&name=two_oceansAndrei9385https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=50636&name=Andrei9385YetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid125987:1В контейнере закрытого ключа, отсутствуют сертификаты.<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=125277#post125277"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><div class="quote"><span class="quotetitle">Автор: Андрей Русев <a href="/forum2/default.aspx?g=posts&m=125214#post125214"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>где и на Windows будет такое же удобное поведение: дополнительных действий больше не потребуется</div></div>К сожалению, в ряде случае такое поведение как раз <strong>неудобное</strong>, а удобнее как сейчас без сертификата в контейнере.<br /><br />Причина: отсутствие штатного механизма удаления сертификата из контейнера либо замены сертификата в контейнере. Если сертификат уже установлен, то функция cryptoapi для установки сертификата возвращает ошибку, как и утилита csptest. При различных операциях с внутренним УЦ (для аккредитованных УЦ наверно не так актуально) возможен случай когда выпускается новый сертификат УЦ на тот же открытый ключ (кросс-сертификат, например, сертификат с откорректированными адресами или сертификат, подхватывающий клиентские сертификаты при смене ключа УЦ в Майкрософт УЦ) и в этом случае оставлять "предыдущую версию" сертификата в контейнере будет не самой хорошей идеей.<br /><br />До сих пор проблема обходилась экспортом в PFX и импортом обратно, что удаляло сертификат из контейнера и можно было установить новый сертификат с тем же открытым ключом. На новой версии криптопровайдера предлагается в таком случае еще и заменять/удалять сертификат в самом PFX? Либо можно сохранить некий исполняемый файл (certmgr.exe ?) от другой версии криптопровайдера чтобы "по-старому" получать контейнер без сертификата? Или можно использовать некий ключ командной строки позволяющий пропустить импорт сертификата в контейнер?<br /><br />Впрочем, если большинству пользователей удобно получать контейнер с сертификатом, то пусть будет так, однако прошу реализовать идею о штатном механизме удаления сертификата из контейнера либо замены сертификата в контейнере. Хотя бы в виде отдельной утилиты командной строки, напрямую работающей с header.key. Пробовал такую написать сам, но споткнулся на неопубликованном способе вычисления контрольной суммы - удалением сертификата из ASN1 структуры получился header.key идентичный сохраненному до импорта сертификата кроме 4 байт контрольной суммы.<br /><br />К слову, если контейнер связан в хранилище с другим сертификатом (сертификат 1) чем установленный сертификат в контейнере (сертификат 2), открытый ключ одинаков в сертификатах 1 и 2, то какой сертификат предполагается экспортировать в PFX? Полагаю, если будет экспортировать в PFX <strong>сертификат из хранилища, а не из контейнера</strong>, то это как раз решит проблему замены. Ну а только в случае неудачного поиска по открытому ключу в хранилище использовать сертификат из контейнера.<br />Что-то вроде такого:<br />Дано: "старый" контейнер с установленным "старым" сертификатом.<br />1) выпускается "новый" сертификат (кросс-сертификат) на тот же открытый ключ;<br />2) "новый" сертификат устанавливается в хранилище, со ссылкой на тот же "старый" контейнер;<br />3) "старый" сертификат удаляется из хранилища для однозначного поиска по открытому ключу в хранилище;<br />4) экспортируется PFX с сертификатом из хранилища (в данном случае найден "новый" в хранилище);<br />5) импортируется PFX и получаем "новый" контейнер с "новым" сертификатом, плюс меняется ссылка на контейнер в хранилище;<br />6) тестируем "новый" контейнер и при необходимости удаляем "старый".</div></div><br />Установка нового сертификата в контейнер работала всегда, только он должен соответствовать ключу. <br />Экспорт в pfx работает с сертификатом в хранилище в известных мне утилитах, для экспорта сертификата из контейнера нужно написать несколько строк кода. <br />Также, взяв за основу пример копирования ключа из SDK, несложно написать копирование контейнера без сертификата. <br />Отмечу, что контейнер без сертификата обладает неудобным свойством — из него нельзя получить открытый ключ без ввода пин-кода. <br /></td></tr></table>2021-07-14T10:29:28+03:002021-07-14T10:29:28+03:00Максим Коллегин<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=125277#post125277"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><div class="quote"><span class="quotetitle">Автор: Андрей Русев <a href="/forum2/default.aspx?g=posts&m=125214#post125214"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>где и на Windows будет такое же удобное поведение: дополнительных действий больше не потребуется</div></div>К сожалению, в ряде случае такое поведение как раз <strong>неудобное</strong>, а удобнее как сейчас без сертификата в контейнере.<br /><br />Причина: отсутствие штатного механизма удаления сертификата из контейнера либо замены сертификата в контейнере. Если сертификат уже установлен, то функция cryptoapi для установки сертификата возвращает ошибку, как и утилита csptest. При различных операциях с внутренним УЦ (для аккредитованных УЦ наверно не так актуально) возможен случай когда выпускается новый сертификат УЦ на тот же открытый ключ (кросс-сертификат, например, сертификат с откорректированными адресами или сертификат, подхватывающий клиентские сертификаты при смене ключа УЦ в Майкрософт УЦ) и в этом случае оставлять "предыдущую версию" сертификата в контейнере будет не самой хорошей идеей.<br /><br />До сих пор проблема обходилась экспортом в PFX и импортом обратно, что удаляло сертификат из контейнера и можно было установить новый сертификат с тем же открытым ключом. На новой версии криптопровайдера предлагается в таком случае еще и заменять/удалять сертификат в самом PFX? Либо можно сохранить некий исполняемый файл (certmgr.exe ?) от другой версии криптопровайдера чтобы "по-старому" получать контейнер без сертификата? Или можно использовать некий ключ командной строки позволяющий пропустить импорт сертификата в контейнер?<br /><br />Впрочем, если большинству пользователей удобно получать контейнер с сертификатом, то пусть будет так, однако прошу реализовать идею о штатном механизме удаления сертификата из контейнера либо замены сертификата в контейнере. Хотя бы в виде отдельной утилиты командной строки, напрямую работающей с header.key. Пробовал такую написать сам, но споткнулся на неопубликованном способе вычисления контрольной суммы - удалением сертификата из ASN1 структуры получился header.key идентичный сохраненному до импорта сертификата кроме 4 байт контрольной суммы.<br /><br />К слову, если контейнер связан в хранилище с другим сертификатом (сертификат 1) чем установленный сертификат в контейнере (сертификат 2), открытый ключ одинаков в сертификатах 1 и 2, то какой сертификат предполагается экспортировать в PFX? Полагаю, если будет экспортировать в PFX <strong>сертификат из хранилища, а не из контейнера</strong>, то это как раз решит проблему замены. Ну а только в случае неудачного поиска по открытому ключу в хранилище использовать сертификат из контейнера.<br />Что-то вроде такого:<br />Дано: "старый" контейнер с установленным "старым" сертификатом.<br />1) выпускается "новый" сертификат (кросс-сертификат) на тот же открытый ключ;<br />2) "новый" сертификат устанавливается в хранилище, со ссылкой на тот же "старый" контейнер;<br />3) "старый" сертификат удаляется из хранилища для однозначного поиска по открытому ключу в хранилище;<br />4) экспортируется PFX с сертификатом из хранилища (в данном случае найден "новый" в хранилище);<br />5) импортируется PFX и получаем "новый" контейнер с "новым" сертификатом, плюс меняется ссылка на контейнер в хранилище;<br />6) тестируем "новый" контейнер и при необходимости удаляем "старый".</div></div><br />Установка нового сертификата в контейнер работала всегда, только он должен соответствовать ключу. <br />Экспорт в pfx работает с сертификатом в хранилище в известных мне утилитах, для экспорта сертификата из контейнера нужно написать несколько строк кода. <br />Также, взяв за основу пример копирования ключа из SDK, несложно написать копирование контейнера без сертификата. <br />Отмечу, что контейнер без сертификата обладает неудобным свойством — из него нельзя получить открытый ключ без ввода пин-кода. <br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid125790:1В контейнере закрытого ключа, отсутствуют сертификаты.<table class="content postContainer" width="100%"><tr><td>В общем догуглился. Нашел не задокументированный ключ в теме: <a rel="nofollow" href="http://www.cryptopro.ru/forum2/default.aspx?g=posts&t=18296" title="http://www.cryptopro.ru/forum2/default.aspx?g=posts&t=18296">http://www.cryptopro.ru/...aspx?g=posts&t=18296</a> и всё заработало вот так:<br /><br />certmgr.exe -install -store uMy -file "C:\Users\User\Desktop\RE.cer" -certificate -container "2020-08-10 10-42-23 Общество с ограниченной ответственностью РЕ - Copy" -silent -inst_to_cont</td></tr></table>2021-07-05T11:09:57+03:002021-07-05T11:09:57+03:00Andrei9385<table class="content postContainer" width="100%"><tr><td>В общем догуглился. Нашел не задокументированный ключ в теме: <a rel="nofollow" href="http://www.cryptopro.ru/forum2/default.aspx?g=posts&t=18296" title="http://www.cryptopro.ru/forum2/default.aspx?g=posts&t=18296">http://www.cryptopro.ru/...aspx?g=posts&t=18296</a> и всё заработало вот так:<br /><br />certmgr.exe -install -store uMy -file "C:\Users\User\Desktop\RE.cer" -certificate -container "2020-08-10 10-42-23 Общество с ограниченной ответственностью РЕ - Copy" -silent -inst_to_cont</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid125789:1В контейнере закрытого ключа, отсутствуют сертификаты.<table class="content postContainer_Alt" width="100%"><tr><td>certmgr -inst -store uMy -file "C:\Users\User\Desktop\re.cer" -cont "2020-08-10 10-42-23 Общество с ограниченной ответственностью РЕ - Copy"<br /><br />[ErrorCode: 0x00000000]<br /><br />Выполнилось успешно, но сертификата так и нет в контейнере.<br /><br />- Ответьте пожалуйста, могу я как-то этот злонесчастный сертификат установить в крипто про провайдер ? Или только в новой версии, которую нужно ждать ?</td></tr></table>2021-07-05T11:03:14+03:002021-07-05T11:03:14+03:00Andrei9385<table class="content postContainer_Alt" width="100%"><tr><td>certmgr -inst -store uMy -file "C:\Users\User\Desktop\re.cer" -cont "2020-08-10 10-42-23 Общество с ограниченной ответственностью РЕ - Copy"<br /><br />[ErrorCode: 0x00000000]<br /><br />Выполнилось успешно, но сертификата так и нет в контейнере.<br /><br />- Ответьте пожалуйста, могу я как-то этот злонесчастный сертификат установить в крипто про провайдер ? Или только в новой версии, которую нужно ждать ?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid125779:1В контейнере закрытого ключа, отсутствуют сертификаты.<table class="content postContainer" width="100%"><tr><td>Объясните мне, может я чего-то не понимаю.<br /><br />certmgr: В режиме импорта pfx добавлена возможность установки закрытого ключа сертификата в заданный провайдер (CPCSP-8266).<br /><br />Почему же не работает установка закрытого ключа в КриптоПро провайдер ?<br /><br />Я всё же должен ждать обновления версии КриптоПро или я сейчас как-то могу автоматизировать процесс ?</td></tr></table>2021-07-02T16:42:13+03:002021-07-02T16:42:13+03:00Andrei9385<table class="content postContainer" width="100%"><tr><td>Объясните мне, может я чего-то не понимаю.<br /><br />certmgr: В режиме импорта pfx добавлена возможность установки закрытого ключа сертификата в заданный провайдер (CPCSP-8266).<br /><br />Почему же не работает установка закрытого ключа в КриптоПро провайдер ?<br /><br />Я всё же должен ждать обновления версии КриптоПро или я сейчас как-то могу автоматизировать процесс ?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid125756:1В контейнере закрытого ключа, отсутствуют сертификаты.<table class="content postContainer_Alt" width="100%"><tr><td>Здравствуйте. Я видимо не дождусь ту обещанную версию, когда сертификат будет устанавливаться в контейнер КриптоПро.<br /><br />Подскажите, есть ли команды, чтоб как в графике "Установить личный сертификат", реализовать через командную строку ?<br /><br />Я нашел нужные ключи и автоматизировал процесс установки сертификатов через Powershell.<br /><br />Start-Process -NoNewWindow -FilePath "C:\Program Files\Crypto Pro\CSP\certmgr.exe" -ArgumentList "-inst -store uMy -pfx -file ""\\domain.com\SYSVOL\domain.com\scripts\RDS\Certificates\$CertCompany.pfx"" -pin 123456789 -silent"<br /><br />Осталось понять, могу ли я автоматизировать установку .cer в КриптоПро.<br /><br />И еще вопрос, тут <a rel="nofollow" href="http://www.cryptopro.ru/forum2/default.aspx?g=posts&t=17870" title="http://www.cryptopro.ru/forum2/default.aspx?g=posts&t=17870">http://www.cryptopro.ru/...aspx?g=posts&t=17870</a> автору говорят использовать ключ -pfx, как я полагаю, он так же не импортирует сертификат в контейнер ? Это как минимум не работает.</td></tr></table>2021-07-01T14:12:08+03:002021-07-01T14:12:08+03:00Andrei9385<table class="content postContainer_Alt" width="100%"><tr><td>Здравствуйте. Я видимо не дождусь ту обещанную версию, когда сертификат будет устанавливаться в контейнер КриптоПро.<br /><br />Подскажите, есть ли команды, чтоб как в графике "Установить личный сертификат", реализовать через командную строку ?<br /><br />Я нашел нужные ключи и автоматизировал процесс установки сертификатов через Powershell.<br /><br />Start-Process -NoNewWindow -FilePath "C:\Program Files\Crypto Pro\CSP\certmgr.exe" -ArgumentList "-inst -store uMy -pfx -file ""\\domain.com\SYSVOL\domain.com\scripts\RDS\Certificates\$CertCompany.pfx"" -pin 123456789 -silent"<br /><br />Осталось понять, могу ли я автоматизировать установку .cer в КриптоПро.<br /><br />И еще вопрос, тут <a rel="nofollow" href="http://www.cryptopro.ru/forum2/default.aspx?g=posts&t=17870" title="http://www.cryptopro.ru/forum2/default.aspx?g=posts&t=17870">http://www.cryptopro.ru/...aspx?g=posts&t=17870</a> автору говорят использовать ключ -pfx, как я полагаю, он так же не импортирует сертификат в контейнер ? Это как минимум не работает.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid125579:1В контейнере закрытого ключа, отсутствуют сертификаты.<table class="content postContainer" width="100%"><tr><td>Здравствуйте.<br /><br /><div class="quote"><span class="quotetitle">Автор: Andrei9385 <a href="/forum2/default.aspx?g=posts&m=125576#post125576"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Андрей Русев, здравствуйте. Есть новости по новой версии КриптоПро?</div></div><br /><br />сборка 5.0.12000 Kraken еще не опубликована.<br /><br />Отслеживать изменения: <br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote>КриптоПро CSP 5.0 » Актуальная версия КриптоПро CSP 5.0</div></div><br /> Опции\Отслеживать эту тему:<br /><a rel="nofollow" href="https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=120172#post120172" title="https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=120172#post120172">https://www.cryptopro.ru...&m=120172#post120172</a></td></tr></table>2021-06-18T10:17:09+03:002021-06-18T10:17:09+03:00Андрей *<table class="content postContainer" width="100%"><tr><td>Здравствуйте.<br /><br /><div class="quote"><span class="quotetitle">Автор: Andrei9385 <a href="/forum2/default.aspx?g=posts&m=125576#post125576"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Андрей Русев, здравствуйте. Есть новости по новой версии КриптоПро?</div></div><br /><br />сборка 5.0.12000 Kraken еще не опубликована.<br /><br />Отслеживать изменения: <br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote>КриптоПро CSP 5.0 » Актуальная версия КриптоПро CSP 5.0</div></div><br /> Опции\Отслеживать эту тему:<br /><a rel="nofollow" href="https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=120172#post120172" title="https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=120172#post120172">https://www.cryptopro.ru...&m=120172#post120172</a></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid125576:1В контейнере закрытого ключа, отсутствуют сертификаты.<table class="content postContainer_Alt" width="100%"><tr><td>Андрей Русев, здравствуйте. Есть новости по новой версии КриптоПро?</td></tr></table>2021-06-18T09:16:15+03:002021-06-18T09:16:15+03:00Andrei9385<table class="content postContainer_Alt" width="100%"><tr><td>Андрей Русев, здравствуйте. Есть новости по новой версии КриптоПро?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid125281:1В контейнере закрытого ключа, отсутствуют сертификаты.<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Цитата:</span><blockquote>Если сертификат уже установлен, то функция cryptoapi для установки сертификата возвращает ошибку, как и утилита csptest.</div></div><br />Добрый день.<br /><br />Замена сертификата в контейнере - штатный механизм, который должен работать.<br />Уточните, пожалуйста, версию провайдера, в которой не удалось поставить новый сертификат взамен старого, ключевой носитель, ошибку и код/команду csptest.<br /><br />Сейчас проверил на CSP 5.0 R2 - всё работает.</td></tr></table>2021-06-07T10:19:51+03:002021-06-07T10:19:51+03:00Grey<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Цитата:</span><blockquote>Если сертификат уже установлен, то функция cryptoapi для установки сертификата возвращает ошибку, как и утилита csptest.</div></div><br />Добрый день.<br /><br />Замена сертификата в контейнере - штатный механизм, который должен работать.<br />Уточните, пожалуйста, версию провайдера, в которой не удалось поставить новый сертификат взамен старого, ключевой носитель, ошибку и код/команду csptest.<br /><br />Сейчас проверил на CSP 5.0 R2 - всё работает.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid125277:1В контейнере закрытого ключа, отсутствуют сертификаты.<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей Русев <a href="/forum2/default.aspx?g=posts&m=125214#post125214"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>где и на Windows будет такое же удобное поведение: дополнительных действий больше не потребуется</div></div>К сожалению, в ряде случае такое поведение как раз <strong>неудобное</strong>, а удобнее как сейчас без сертификата в контейнере.<br /><br />Причина: отсутствие штатного механизма удаления сертификата из контейнера либо замены сертификата в контейнере. Если сертификат уже установлен, то функция cryptoapi для установки сертификата возвращает ошибку, как и утилита csptest. При различных операциях с внутренним УЦ (для аккредитованных УЦ наверно не так актуально) возможен случай когда выпускается новый сертификат УЦ на тот же открытый ключ (кросс-сертификат, например, сертификат с откорректированными адресами или сертификат, подхватывающий клиентские сертификаты при смене ключа УЦ в Майкрософт УЦ) и в этом случае оставлять "предыдущую версию" сертификата в контейнере будет не самой хорошей идеей.<br /><br />До сих пор проблема обходилась экспортом в PFX и импортом обратно, что удаляло сертификат из контейнера и можно было установить новый сертификат с тем же открытым ключом. На новой версии криптопровайдера предлагается в таком случае еще и заменять/удалять сертификат в самом PFX? Либо можно сохранить некий исполняемый файл (certmgr.exe ?) от другой версии криптопровайдера чтобы "по-старому" получать контейнер без сертификата? Или можно использовать некий ключ командной строки позволяющий пропустить импорт сертификата в контейнер?<br /><br />Впрочем, если большинству пользователей удобно получать контейнер с сертификатом, то пусть будет так, однако прошу реализовать идею о штатном механизме удаления сертификата из контейнера либо замены сертификата в контейнере. Хотя бы в виде отдельной утилиты командной строки, напрямую работающей с header.key. Пробовал такую написать сам, но споткнулся на неопубликованном способе вычисления контрольной суммы - удалением сертификата из ASN1 структуры получился header.key идентичный сохраненному до импорта сертификата кроме 4 байт контрольной суммы.<br /><br />К слову, если контейнер связан в хранилище с другим сертификатом (сертификат 1) чем установленный сертификат в контейнере (сертификат 2), открытый ключ одинаков в сертификатах 1 и 2, то какой сертификат предполагается экспортировать в PFX? Полагаю, если будет экспортировать в PFX <strong>сертификат из хранилища, а не из контейнера</strong>, то это как раз решит проблему замены. Ну а только в случае неудачного поиска по открытому ключу в хранилище использовать сертификат из контейнера.<br />Что-то вроде такого:<br />Дано: "старый" контейнер с установленным "старым" сертификатом.<br />1) выпускается "новый" сертификат (кросс-сертификат) на тот же открытый ключ;<br />2) "новый" сертификат устанавливается в хранилище, со ссылкой на тот же "старый" контейнер;<br />3) "старый" сертификат удаляется из хранилища для однозначного поиска по открытому ключу в хранилище;<br />4) экспортируется PFX с сертификатом из хранилища (в данном случае найден "новый" в хранилище);<br />5) импортируется PFX и получаем "новый" контейнер с "новым" сертификатом, плюс меняется ссылка на контейнер в хранилище;<br />6) тестируем "новый" контейнер и при необходимости удаляем "старый".</td></tr></table>2021-06-07T01:00:03+03:002021-06-07T01:00:03+03:00two_oceans<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей Русев <a href="/forum2/default.aspx?g=posts&m=125214#post125214"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>где и на Windows будет такое же удобное поведение: дополнительных действий больше не потребуется</div></div>К сожалению, в ряде случае такое поведение как раз <strong>неудобное</strong>, а удобнее как сейчас без сертификата в контейнере.<br /><br />Причина: отсутствие штатного механизма удаления сертификата из контейнера либо замены сертификата в контейнере. Если сертификат уже установлен, то функция cryptoapi для установки сертификата возвращает ошибку, как и утилита csptest. При различных операциях с внутренним УЦ (для аккредитованных УЦ наверно не так актуально) возможен случай когда выпускается новый сертификат УЦ на тот же открытый ключ (кросс-сертификат, например, сертификат с откорректированными адресами или сертификат, подхватывающий клиентские сертификаты при смене ключа УЦ в Майкрософт УЦ) и в этом случае оставлять "предыдущую версию" сертификата в контейнере будет не самой хорошей идеей.<br /><br />До сих пор проблема обходилась экспортом в PFX и импортом обратно, что удаляло сертификат из контейнера и можно было установить новый сертификат с тем же открытым ключом. На новой версии криптопровайдера предлагается в таком случае еще и заменять/удалять сертификат в самом PFX? Либо можно сохранить некий исполняемый файл (certmgr.exe ?) от другой версии криптопровайдера чтобы "по-старому" получать контейнер без сертификата? Или можно использовать некий ключ командной строки позволяющий пропустить импорт сертификата в контейнер?<br /><br />Впрочем, если большинству пользователей удобно получать контейнер с сертификатом, то пусть будет так, однако прошу реализовать идею о штатном механизме удаления сертификата из контейнера либо замены сертификата в контейнере. Хотя бы в виде отдельной утилиты командной строки, напрямую работающей с header.key. Пробовал такую написать сам, но споткнулся на неопубликованном способе вычисления контрольной суммы - удалением сертификата из ASN1 структуры получился header.key идентичный сохраненному до импорта сертификата кроме 4 байт контрольной суммы.<br /><br />К слову, если контейнер связан в хранилище с другим сертификатом (сертификат 1) чем установленный сертификат в контейнере (сертификат 2), открытый ключ одинаков в сертификатах 1 и 2, то какой сертификат предполагается экспортировать в PFX? Полагаю, если будет экспортировать в PFX <strong>сертификат из хранилища, а не из контейнера</strong>, то это как раз решит проблему замены. Ну а только в случае неудачного поиска по открытому ключу в хранилище использовать сертификат из контейнера.<br />Что-то вроде такого:<br />Дано: "старый" контейнер с установленным "старым" сертификатом.<br />1) выпускается "новый" сертификат (кросс-сертификат) на тот же открытый ключ;<br />2) "новый" сертификат устанавливается в хранилище, со ссылкой на тот же "старый" контейнер;<br />3) "старый" сертификат удаляется из хранилища для однозначного поиска по открытому ключу в хранилище;<br />4) экспортируется PFX с сертификатом из хранилища (в данном случае найден "новый" в хранилище);<br />5) импортируется PFX и получаем "новый" контейнер с "новым" сертификатом, плюс меняется ссылка на контейнер в хранилище;<br />6) тестируем "новый" контейнер и при необходимости удаляем "старый".</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid125217:1В контейнере закрытого ключа, отсутствуют сертификаты.<table class="content postContainer" width="100%"><tr><td>О, Андрей, благодарю Вас. Это чудесная новость !)</td></tr></table>2021-06-03T11:01:19+03:002021-06-03T11:01:19+03:00Andrei9385<table class="content postContainer" width="100%"><tr><td>О, Андрей, благодарю Вас. Это чудесная новость !)</td></tr></table>