Я хотел бы поэкспериментировать с подписанием исполняемого файла программного обеспечения. Боюсь, что от меня что-то ускользает.
Я доберусь до точки, где я получу сертификат от CA, но до этого я хотел бы знать, что я делаю, поэтому я сделал тест:
Я создал самоподписанный сертификат:
makecert -r -ss myPrivateCert -sk c:test -n "CN=My Company Inc." testCert.cer
затем подписал исполняемый файл:
signtool sign /v /s myPrivateCert /n "My Company Inc." /t http://timestamp.verisign.com/scripts/timstamp.dll c:foldermy_installer.exe
для обеих команд, я получил успех.
Шаг 3: "установить тест Сертификат": http://msdn.microsoft.com/en-us/library/bb756995
успехов.
(Примечание: в папке c:test
, Я разместил сертификаты, загруженные из предложенного Microsoft списка перекрестных сертификатов, как VeriSign Class 3 Public Primary Certification Authority - G5.cer
- Я просто предполагаю, что я должен был это сделать.)
Я бегу certmgr c:foldermy_installer.exe
и я получил список из 3 сертификатов, которые я добавил, с темой, эмитентом, серийным номером... (от моей компании Inc. и VeriSign), так что, видимо, все в порядке.
даже после этого, если я дважды щелкните установщик (или исполняемый файл), я получаю сообщение UAC о неизвестном издателе...
Итак, что еще мне нужно сделать, чтобы эта коробка либо исчезла, либо сказала "моя компания Inc."для продюсера ? И то только для местной машины, делающ все вручную...
для тестирования по-настоящему, я предполагаю, что мой клиент является средой VirtualBox... и что ?
Следующий шаг: переместите установщик в VirtualBox и запустить его ?
но как я могу сказать клиенту о ключе или сертификате или что-то еще ? Я копирую файл cer вместе с exe ? Я должен положить его в специальное место ? Копирую ли я другие файлы ? Должен ли я снова запустить mmc ? Должны ли пользователи делать что-то подобное ? Потому что кажется чрезвычайно сложным, с точки зрения пользователя... Это очень сложно...
Я предполагаю, что, если я куплю реальный сертификат от Verisign, например, он будет аутентификация через интернет, и мне не придется делать ничего другого (кроме двух команд выше, минус-r) ?
я нашел много указаний об этом в интернете, но каждый оставил меня в замешательстве, как когда я начал - возможно, у каждого из них были предположения о некоторых предварительных знаниях...