Сейчас на форуме: asfa, bartolomeo (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› сертификаты в браузере. как автоматически выбрать нужный и зайти на сайт? |
Посл.ответ | Сообщение |
|
Создано: 30 мая 2012 12:12 · Личное сообщение · #1 при заходе на определенный сайт появляется список сертификатов, выбирая нужный заходишь под тем логином. насколько я знаю в php есть такая возможность как дописать параметры к ссылке браузера типа: ввв.мыл.ру/login=vasya?password=123 и таким образом можно избежать процедуру авторизации на главной страничке сайта. можно ли подобным образом автоматически выбирать сертификат заходя на определенную ссылку? типа: https://ввв.сайт.ру/sertificat=test.p12 есть вариант производить поиск по хенделу окна, потом находить все дочерние по пути до окна с выбором сертификатов, а после выбирать посредством SendMessage и LVM_SETITEMSTATE... но я никак не могу заставить выбирать какой-либо сертификат в этом окошке, а во вторых - браузеры бывают разные, соответственно и названия окошек, по которым производить поиск будут разные - хоть одно окно не найдет - все, система уже не пашет. потом сам список сертификатов не соответствует порядку в программе. то есть это придется еще читать название сертификата и сравнивать его название. ![]() |
|
Создано: 31 мая 2012 17:24 · Личное сообщение · #2 |
|
Создано: 31 мая 2012 18:12 · Личное сообщение · #3 SeregaZ Дописывание параметров запроса - это стандарт HTTP и к пхп не имеет никакого отношения. Параметры будут обработаны скриптом только в том случае если он работает с _GET запросами, если он явно обрабатывает только _POST запросы он их вообще не увидит. С сертификатами вообще другая песня и их выбор происходит еще до контакта с контентом сайта, на этапе хендшейка. Работать с сертификатами мимо пользователя - зло. ----- старый пень ![]() |
|
Создано: 01 июня 2012 09:04 · Поправил: SeregaZ · Личное сообщение · #4 вас тут послушать жить вобще нельзя - жизнь это зло... пришлось делать метод через ж... путем winapi. пока дошел до момента нахождения окон выбора сертификата в эксплорере и гуглхроме, и уже есть чтение названий сертификатов из этого окна, и есть даже определение какой именно выделен. осталось добавить выделение нужного пункта и нажатия "ок". насчет кражи денег - это сайт сдачи налоговой отчетности. при заходе на него, вылазит окошко с выбором установленных сертификатов. оно понятно если фирма всего одна, а если фирм 10-20? и названия фирм там не пишет, а пишет РНН - 12 непонятных цифр. увязать в своей голове 10 двенадцатицифровых значений с определенной фирмой трудновато ![]() вот моя програмка сидит в трее, тыркаем - открывается меню, в нем список этих самых фирм, но только в виде названий, а не рнн. за каждым названием будет закреплен рнн и при выборе определенной фирмы открывается браузер хром или эксплорер, заходит на тот сайт и выбирает соответствующий выбранной фирме рнн, и жмет вход. опционально думаю может быть то цифровое название рнн менять на текстовое - название фирмы прям в том поле... неизвестно правда как там потом будет происходить вход... не повредится ли чего ![]() ну и раз пошла такая пьянка еще вопрос: налоговая изначально выдает ключик в виде файла.bin плюс 3-4 папки с файлами, а для входа на тот сайт его еще необходимо соответствующим образом сконвертировать - форма на сайте это делает используя java. типы сертификатов и сами сертификаты для меня китайская грамота... как узнать как именно происходит конвертация? этот java апплет отсылает ключ на сервер (формат gost) и получает оттуда (формат rsa.p12), или же сам апплет, локально, без пересылки производит конвертирование? я к чему веду - было бы здорово научить мою программу производить это конвертирование. почему думаю что может быть эта операция производится локально - так как есть вторая система для сдачи отчетности - отдельный клиент. так вот он делает аналогичный сертификат, но несколько иной нежели браузерный но тоже p12 - вот он производит конвертацию локально. третий вопрос: есть сертификат RSA.p12 - чтобы его зарегистрировать достаточно тыркнуть на нем, запустится мастер импорта сертификатов, и далее далее далее и сертификат в итоге зарегистрирован. суть проблемы - при нахождении на компьютере специальной программы тумар (какое-то там дополнительное шифрование и абракадабра с сертификатами - используется обычно в интернет банкиках), подобное стандартное регистрирование RSA.p12 + далее далее далее - не работает. приходится выбирать вручную физическое расположение сертификата: Личные-Реестр (при тумаре там в этом Личные две папки - Реестр и Тумар - вот она и путается куда сувать новый сертификат). это все была преамбула - теперь собственно вопрос: есть ли какие консольные команды для регистрации этого RSA.p12? типа "RSA.p12 /silent /path=Личные\Реестр" чтобы он установился без ручного выбора того пути. бухгалтерши обычно бестолковые... и сами не могут это сделать ![]() Certmgr.exe ( http://msdn.microsoft.com/en-us/library/e78byta0(v=vs.80).aspx ) не предлагать. там требуется нет фреймворк. у них его может не быть. хотя я бы согласился бы на портейбл версию Certmgr.exe ![]() вот подойдет! ![]() |
|
Создано: 01 июня 2012 14:32 · Личное сообщение · #5 SeregaZ Может просто при наведении мыши на элемент списка показывать хинт с названием лица, вместо того чтоб самому подменять пользователя? И бухгалтеру понятно будет и тебе мороки меньше. По поводу импорта сертификатов - посмотри WinAPI - там несложно и самому написать импортер. Что касается конвертирования, вопрос нужно изучать глубжее. По умолчанию виндовс, скорей всего, ничего не знает ни о ГОСТ, ни о формате хранилища в bin. Результат в р12 - это уже стандартный формат, но как они ГОСТ в РСА переделывают - загадка. ----- старый пень ![]() |
|
Создано: 01 июня 2012 15:00 · Личное сообщение · #6 Очевидно что у вас не чистый ssl/tls, а какое-то заново изобретенное колесо в виде надстроек или чего-то такого, раз сертификаты спрашивают после подключения к веб-серверу. Про самостоятельную конвертацию сертификатов без реверса аплета можно забыть. P12 сертификат в моем понимании это склееный публичный и приватный ключи клиента, чтобы из сгенерить нужно знать приватный ключ сервера, а его вам никто не даст (мне так кажется почему-то ![]() Установка DER сертификата: CertOpenStore - CertAddCertificateContextToStore - CertCloseStore Вот тут есть хороший кодес: http://www.wasm.ru/forum/viewtopic.php?id=39961 ![]() |
|
Создано: 02 июня 2012 07:20 · Поправил: SeregaZ · Личное сообщение · #7 а теперь как для ребёнка ![]() при регистрации через стандартный - Мастер импорта сертификатов - выбирается путь, куда сертификат будет сохранен (Личные\Реестр), читается содержимое RSA.p12, соответствующим образом распаковывается и сохраняется в C:\Documents and Settings\Администратор\Application Data\Microsoft\SystemCertificates\My\Certificates под именем типа 9930806CDBCD9E2C993B3A7D8A8FABCADFD88898 теперь как это повторить? CertOpenStore и CertCloseStore исходя из названия открывает и закрывает хранилище. какое такое хранилище? тот мой файл RSA.p12 или же открывает то место в виндовсе, где все сертификаты хранятся? ![]() скопировал фрагмент с того сайта, все на буржуйском. напишу перевод, и сразу вопросы по параметрам. Code:
*** по CertAddCertificateContextToStore там только один пример, и судя по коменту он не подходит. "добавляет сертификат из Моего хранилища в новое хранилище в памяти". мне по идее надо что-то типа "читает сертификат из файла и добавляет его в Мое хранилище, или в системное хранилище... куда он должен то..." Code:
*** по закрытию CertCloseStore все понятно. Code:
в свойствах уже установленного ключа написано: Версия V3 Алгоритм подписи sha1RSA Открытый ключ RSA (512 Bits) Алгоритм отпечатка sha1 что необходимо в коде поправить, чтобы все правильно понималось? в смысле всякие непонятные кодировки и прочее... *** и из того примера один непонятный момент... blob.pbData = (BYTE*)pfx; что это такое, и как подобное получить? у меня не с++... ![]() |
![]() |
eXeL@B —› Вопросы новичков —› сертификаты в браузере. как автоматически выбрать нужный и зайти на сайт? |