Здравствуйте, обновили цифровую подпись (от Certum (http://www.certum.eu)) и начались проблемы.
Раньше подписанный файл сразу определялся Windows 7 как "хороший", сейчас — неизвестный издатель.
Однако, если зайти в св-ва файла -> Цифровые подписи и нажать на кнопку "Сведения",
то после ОЧЕНЬ прололжительно паузы (винда очевидно лезет в инет) появляется окно "Состав цифровой подписи",
где появляется надпись "Цифровая подпись действительна". После этого все подписанные этим сертификатом файлы
на этой система запускаются без проблем. Если инета нет — то в окне написано
"Сертификат подписи не удается проверить". Иногда даже если есть инет появляется это сообщение,
правда на следущий раз обычно проверка проходит успешно.
Суппорт их пока невменяем, подскажите что делать, что думать, куда копать, в чем причины.
PS. Некоторые браузеры после скачки файла тоже начинают проверять подпись таким же образом,
как будто я зашел в св-ва файла, и он запускается как проверенный издатель. Но опять же — не всегда.
Здравствуйте, cppguy, Вы писали:
C>Здравствуйте, обновили цифровую подпись (от Certum (http://www.certum.eu)) и начались проблемы.
В винде нету корневого сертификата этого сертума и она лезет за ним в интернет. Как-то так.
Как бороться? Да никак, на сколько я понимаю, выход только один — брать сертификат в других местах.
Здравствуйте, cppguy, Вы писали:
C>Здравствуйте, обновили цифровую подпись (от Certum (http://www.certum.eu)) и начались проблемы.
C>Раньше подписанный файл сразу определялся Windows 7 как "хороший", сейчас — неизвестный издатель. C>Однако, если зайти в св-ва файла -> Цифровые подписи и нажать на кнопку "Сведения", C>то после ОЧЕНЬ прололжительно паузы (винда очевидно лезет в инет) появляется окно "Состав цифровой подписи", C>где появляется надпись "Цифровая подпись действительна". После этого все подписанные этим сертификатом файлы C>на этой система запускаются без проблем. Если инета нет — то в окне написано C>"Сертификат подписи не удается проверить". Иногда даже если есть инет появляется это сообщение, C>правда на следущий раз обычно проверка проходит успешно.
Такая же ситуация с большинством других популярных сертификатов.
Одних вообще нет на чистых системах (COMODO, Go Daddy, Starfield, Startcom),
другие остались лишь на XP и Server 2003 (GlobalSign, Entrust.net, Netlock, Equifax),
или наоборот — были вырезаны из последних версий Windows (Thawte).
GTE CyberTrust Global Root, правда, стоит практически везде.
Ну и VeriSign, понятное дело.
Здравствуйте, okman, Вы писали:
O>Такая же ситуация с большинством других популярных сертификатов. O>Одних вообще нет на чистых системах (COMODO, Go Daddy, Starfield, Startcom), O>другие остались лишь на XP и Server 2003 (GlobalSign, Entrust.net, Netlock, Equifax), O>или наоборот — были вырезаны из последних версий Windows (Thawte).
Подскажите, откуда у Вас такие данные?
Тут много у кого сертификат от Comodo. Вроде как раньше он был в виндах.
Здравствуйте, cppguy, Вы писали:
C>Суппорт их пока невменяем, подскажите что делать, что думать, куда копать, в чем причины.
Похоже на то, что корневой сертификат Certum'а в системе есть. А вот промежуточных (intermediate) сертификатов, скорее всего нет. Винда вполне логично их пытается взять, и если дотягивается до них, то валидация проходит нормально.
Лечение: внедрить их промежуточный сертификат в свой.
Может быть ламерская мысль, но можно ведь загрузить корневые сертификаты в виде файлов и при инсталяции продукта импортировать сертификат, если его нет. У венды свои диалоги импорта, но может быть есть и менее открытый способ установки сертификата или вообще какой-нибудь грязный хак по его импорту?
Здравствуйте, Matrix_Failure, Вы писали:
M_F>Здравствуйте, okman, Вы писали:
O>>Такая же ситуация с большинством других популярных сертификатов. O>>Одних вообще нет на чистых системах (COMODO, Go Daddy, Starfield, Startcom), O>>другие остались лишь на XP и Server 2003 (GlobalSign, Entrust.net, Netlock, Equifax), O>>или наоборот — были вырезаны из последних версий Windows (Thawte).
M_F>Подскажите, откуда у Вас такие данные?
Я ставил чистые Windows разных версий (от XP до Win8, 32-64 бита) на виртуальные
машины и с помощью специальной утилиты сравнивал списки сертификатов.
Компания, на которую я работаю, была заинтересована в приобретении такого
сертификата, который бы гарантированно был установлен по умолчанию на любой
версии Windows, начиная с XP. В конце концов остановились на VeriSign.
M_F>Тут много у кого сертификат от Comodo. Вроде как раньше он был в виндах.
Он сейчас под именем UserTrust, если не ошибаюсь.
Вообще, начиная с Windows Vista, на "голой" системе очень ограниченный список
сертификатов, можете посмотреть через Run -> mmc/Add Snap-In/Certificates
Только что ради интереса заглянул в Vista Ultimate SP2 32-bit — ни COMODO, ни
UserTrust там нету. Да, он туда со временем попадет в результате обновления
корневых сертификатов, или будет установлен какой-нибудь программой, но на
это нужно время.
Здравствуйте, grosborn, Вы писали:
G>Может быть ламерская мысль, но можно ведь загрузить корневые сертификаты в виде файлов и при инсталяции продукта импортировать сертификат, если его нет. У венды свои диалоги импорта, но может быть есть и менее открытый способ установки сертификата или вообще какой-нибудь грязный хак по его импорту?
Для Windows выпускаются пакеты обновления корневых сертификатов.
Они, правда, только для легально зарегистрированных копий Windows, проходящих
проверку на подлинность. Если что. Корневой сертификат можно установить во
время инсталляции, причем можно сделать так, чтобы пользователю даже не будет
показано предупреждение. А для установки сертификатов в промежуточное хранилище
даже права админа не нужны.
Только тогда какой смысл подписывать, к примеру, инсталлятор программы, если до
ее установки пользователь не сможет проверить издателя ?
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, cppguy, Вы писали:
C>>Суппорт их пока невменяем, подскажите что делать, что думать, куда копать, в чем причины. C>Похоже на то, что корневой сертификат Certum'а в системе есть. А вот промежуточных (intermediate) сертификатов, скорее всего нет. Винда вполне логично их пытается взять, и если дотягивается до них, то валидация проходит нормально.
C>Лечение: внедрить их промежуточный сертификат в свой.
у меня есть экспортированный их сертификат (промежуточный как я понимаю). Если вручную на системе кликнуть на нем, то после появления окошка сведений об этом сертификате все идет пучком.
Сертификат с расширением .cer (они мне его тоже давали)
По ссылке, к сожалению, совсем другая информация про openssl
как "внедрить их промежуточный сертификат в свой" с помощью Microsoft'овых инструментов?
Здравствуйте, cppguy, Вы писали:
C>>Промежуточный сертификат вот тут: http://sslcertificatescenter.com/certum_ca-russian.html , как я понял. C>у меня есть экспортированный их сертификат (промежуточный как я понимаю). Если вручную на системе кликнуть на нем, то после появления окошка сведений об этом сертификате все идет пучком.
Значит совершенно точно — нет промежуточного сертификата.
C>Сертификат с расширением .cer (они мне его тоже давали)
Ну вот его и надо обработать с помощью OpenSSL-ной команды.
C>По ссылке, к сожалению, совсем другая информация про openssl C>как "внедрить их промежуточный сертификат в свой" с помощью Microsoft'овых инструментов?
Тут ничем помочь не могу. Возможно, кстати, что при подписывании можно указать несколько сертификатов.
Здравствуйте, okman, Вы писали:
O>Здравствуйте, cppguy, Вы писали:
C>>как "внедрить их промежуточный сертификат в свой" с помощью Microsoft'овых инструментов?
O>Ключ /ac утилиты signtool.exe позволяет включить в электронную подпись дополнительный сертификат.
спасибо, но не помогло.
Заметил, что проверка подписи не добавляет в Windows промежуточный сертификат, а автоматически добавляет корневой сертификат Certum, которого нет:
"Certum Trusted Network CA" в "Доверенные корневые центры сертификации"
вообще путь такой:
"Certum Trusted Network CA"
---"Certum Code Signing CA"
------"my certificate"
"Certum Code Signing CA" вообще нигде в менеджере сертификатов не вижу.
PS. Проверяю все на чистой Windows 7 SP1 (на виртуалке с наличием инета)
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, cppguy, Вы писали:
C>>>Промежуточный сертификат вот тут: http://sslcertificatescenter.com/certum_ca-russian.html , как я понял. C>>у меня есть экспортированный их сертификат (промежуточный как я понимаю). Если вручную на системе кликнуть на нем, то после появления окошка сведений об этом сертификате все идет пучком. C>Значит совершенно точно — нет промежуточного сертификата.
C>>Сертификат с расширением .cer (они мне его тоже давали) C>Ну вот его и надо обработать с помощью OpenSSL-ной команды.
C>>По ссылке, к сожалению, совсем другая информация про openssl C>>как "внедрить их промежуточный сертификат в свой" с помощью Microsoft'овых инструментов? C>Тут ничем помочь не могу. Возможно, кстати, что при подписывании можно указать несколько сертификатов.
C>Краткий Гуглинг натолкнул вот на это: http://msdn.microsoft.com/en-us/library/ie/ms537364%28v=vs.85%29.aspx#SignCode
C>Т.е. "Cert2SPC cert1.cer cert2.cer. . .certN.cer output.spc" на списке сертификатов, включая промежуточный от Certum'а. Затем использовать .spc-файл.
спасибо, SPC нельзя использовать для подписи — либо PFX (с закрытым ключем) либо signtool по имени ищет в системе установленный сертификат.
Заметил, что проверка подписи не добавляет в Windows промежуточный сертификат, а автоматически добавляет корневой сертификат Certum, которого нет:
"Certum Trusted Network CA" в "Доверенные корневые центры сертификации"
вообще путь такой:
"Certum Trusted Network CA"
---"Certum Code Signing CA"
------"my certificate"
"Certum Code Signing CA" вообще нигде в менеджере сертификатов не вижу.
PS. Проверяю все на чистой Windows 7 SP1 (на виртуалке с наличием инета)
Здравствуйте, okman, Вы писали:
O>Здравствуйте, cppguy, Вы писали:
C>>как "внедрить их промежуточный сертификат в свой" с помощью Microsoft'овых инструментов?
O>Ключ /ac утилиты signtool.exe позволяет включить в электронную подпись дополнительный сертификат.
единственное, что изменилось после этого — скорость проверки сертификата в диалоге св-в файла увеличилась раз в 5 (!)
Здравствуйте, cppguy, Вы писали:
C>вообще путь такой: C>"Certum Trusted Network CA" C>---"Certum Code Signing CA" C>------"my certificate" C>"Certum Code Signing CA" вообще нигде в менеджере сертификатов не вижу.
Всё правильно, вот как раз "Certum Code Signing CA" надо скачать и внедрить.
Если Certum Trusted Network CA будет установлен на компьютере, все проверки
должны проходить, так как наличие промежуточного сертификата в хранилище в этом
случае необязательно (во время проверки он будет браться из самой подписи).
O>Если Certum Trusted Network CA будет установлен на компьютере, все проверки O>должны проходить, так как наличие промежуточного сертификата в хранилище в этом O>случае необязательно (во время проверки он будет браться из самой подписи).
опция /f несовместима с /ac, поэтому делал так
signtool sign /v /n "имя моего сертифика в сиетеме" /t "http://timestamp.verisign.com/scripts/timstamp.dll" /ac certum_trusted_network_ca.cer подписываемый файл
(не помогло, результат тотже как и в начале топика)
Спасибо.