Atom Лента - Форум КриптоПро - Тема:Не работает получение списка сертификатов у клиента в браузере Chrome. - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:NerabotaetpolucheniespiskasertifikatovuklientavbrauzereChrome.-10:1Copyright 2024 Форум КриптоПро2024-03-29T16:00:57Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruDetunerhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=31503&name=DetunerDetunerhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=31503&name=DetunerАндрей Емельяновhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=29493&name=Андрей Емельяновandrew-ivhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=38398&name=andrew-ivYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid86573:1Не работает получение списка сертификатов у клиента в браузере Chrome.<table class="content postContainer_Alt" width="100%"><tr><td>Здравствуйте! Только что столкнулся с точно такой же проблемой у одного из клиентов, в хроме падает на методе isValid(). Добавление четырёх строк кода из первого поста решило проблему. У клиента Windows 10 корпоративная, КриптоПро 3.9.8001 КС1, версия плагина 2.0.13064.</td></tr></table>2017-12-12T13:53:48+03:002017-12-12T13:53:48+03:00Detuner<table class="content postContainer_Alt" width="100%"><tr><td>Здравствуйте! Только что столкнулся с точно такой же проблемой у одного из клиентов, в хроме падает на методе isValid(). Добавление четырёх строк кода из первого поста решило проблему. У клиента Windows 10 корпоративная, КриптоПро 3.9.8001 КС1, версия плагина 2.0.13064.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid77027:1Не работает получение списка сертификатов у клиента в браузере Chrome.<table class="content postContainer" width="100%"><tr><td>Добрый день.<br />Если есть возможность предоставить удаленный доступ (TeamViewer) к такому рабочему месту - создайте, пожалуйста, обращение на нашем портале <a rel="nofollow" href="https://support.cryptopro.ru" title="https://support.cryptopro.ru">https://support.cryptopro.ru</a> <br />В обращении можно указать ссылку на данную ветку форума и контакты для связи.</td></tr></table>2017-02-03T17:23:52+03:002017-02-03T17:23:52+03:00Андрей Емельянов<table class="content postContainer" width="100%"><tr><td>Добрый день.<br />Если есть возможность предоставить удаленный доступ (TeamViewer) к такому рабочему месту - создайте, пожалуйста, обращение на нашем портале <a rel="nofollow" href="https://support.cryptopro.ru" title="https://support.cryptopro.ru">https://support.cryptopro.ru</a> <br />В обращении можно указать ссылку на данную ветку форума и контакты для связи.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid77018:1Не работает получение списка сертификатов у клиента в браузере Chrome.<table class="content postContainer_Alt" width="100%"><tr><td>Часть кода для работы с сертификатами:<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> var errorCallback = args[1];<br /> var oStore;<br /> try {<br /> oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");<br /> yield oStore.Open();<br /> }<br /> catch (err) { <br /> errorCallback("Ошибка при открытии хранилища. Проверьте, что КриптоПро ЭЦП Browser plug-in включён и его использование на странице разрешено.");<br /> console.log(SignHelper.getSignErrorMessage(err));<br /> return;<br /> }<br /><br /> var certsResult = [];<br /> var count;<br /> var certs;<br /> try {<br /> certs = yield oStore.Certificates;<br /> count = yield certs.Count;<br /> }<br /> catch (ex) { <br /> errorCallback(certsResult);<br /> return;<br /> }<br /><br /> for (var i = 1; i <= count; i++) {<br /> var cert;<br /> try {<br /> cert = yield certs.Item(i);<br /> }<br /> catch (ex) {<br /> alert("Ошибка при перечислении сертификатов: " + cadesplugin.getLastError(ex));<br /> return;<br /> }<br /> var date = new Date();<br /> var validToDate = new Date((yield cert.ValidToDate));<br /> var validFromDate = new Date(yield cert.ValidFromDate);<br /> var validator = yield cert.IsValid();<br /> var isValid = yield validator.Result;<br /> if (date < validToDate && (yield cert.HasPrivateKey()) && isValid) {<br /> certsResult.push({<br /> Name: yield cert.SubjectName,<br /> ValidFromDate: validFromDate,<br /> ValidToDate: validToDate,<br /> Thumbprint: yield cert.Thumbprint<br /> });<br /> }<br /> }<br /><br /> args[0](certsResult);<br /> yield oStore.Close();</div></div><br /><br /><br /><br />У клиента на некоторых компьютерах возникает ошибка<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote>-> Uncaught (in promise) -> Object {message: "Invalid algorithm specified. (0x80090008)", requestid: 10, type: "error"}</div></div><br />Скорее всего в методе IsValid()<br /><br />После добавления кода, который узнает версию<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote>var oAbout = yield cadesplugin.CreateObjectAsync("CAdESCOM.About");<br />yield oAbout.PluginVersion;<br />yield oAbout.CSPVersion("", 75);<br />yield oAbout.CSPName(75);</div></div><br />Ошибка перестает появляться <img src="/forum2/Images/Emoticons/eusa_dance.gif" alt="Dancing" /> и функционал работает<br /></td></tr></table>2017-02-03T14:34:56+03:002017-02-03T14:34:56+03:00andrew-iv<table class="content postContainer_Alt" width="100%"><tr><td>Часть кода для работы с сертификатами:<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> var errorCallback = args[1];<br /> var oStore;<br /> try {<br /> oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");<br /> yield oStore.Open();<br /> }<br /> catch (err) { <br /> errorCallback("Ошибка при открытии хранилища. Проверьте, что КриптоПро ЭЦП Browser plug-in включён и его использование на странице разрешено.");<br /> console.log(SignHelper.getSignErrorMessage(err));<br /> return;<br /> }<br /><br /> var certsResult = [];<br /> var count;<br /> var certs;<br /> try {<br /> certs = yield oStore.Certificates;<br /> count = yield certs.Count;<br /> }<br /> catch (ex) { <br /> errorCallback(certsResult);<br /> return;<br /> }<br /><br /> for (var i = 1; i <= count; i++) {<br /> var cert;<br /> try {<br /> cert = yield certs.Item(i);<br /> }<br /> catch (ex) {<br /> alert("Ошибка при перечислении сертификатов: " + cadesplugin.getLastError(ex));<br /> return;<br /> }<br /> var date = new Date();<br /> var validToDate = new Date((yield cert.ValidToDate));<br /> var validFromDate = new Date(yield cert.ValidFromDate);<br /> var validator = yield cert.IsValid();<br /> var isValid = yield validator.Result;<br /> if (date < validToDate && (yield cert.HasPrivateKey()) && isValid) {<br /> certsResult.push({<br /> Name: yield cert.SubjectName,<br /> ValidFromDate: validFromDate,<br /> ValidToDate: validToDate,<br /> Thumbprint: yield cert.Thumbprint<br /> });<br /> }<br /> }<br /><br /> args[0](certsResult);<br /> yield oStore.Close();</div></div><br /><br /><br /><br />У клиента на некоторых компьютерах возникает ошибка<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote>-> Uncaught (in promise) -> Object {message: "Invalid algorithm specified. (0x80090008)", requestid: 10, type: "error"}</div></div><br />Скорее всего в методе IsValid()<br /><br />После добавления кода, который узнает версию<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote>var oAbout = yield cadesplugin.CreateObjectAsync("CAdESCOM.About");<br />yield oAbout.PluginVersion;<br />yield oAbout.CSPVersion("", 75);<br />yield oAbout.CSPName(75);</div></div><br />Ошибка перестает появляться <img src="/forum2/Images/Emoticons/eusa_dance.gif" alt="Dancing" /> и функционал работает<br /></td></tr></table>