У нас есть инфраструктура на базе Windows. Недавно наш разработчик программного обеспечения спросил меня, можем ли мы выпустить собственные сертификаты для подписания некоторых небольших программ, которые мы отправляем нашим партнерам. Но я не совсем понимаю, как это делается. Что именно я предполагаю настроить для нас, чтобы выпускать и поддерживать наши собственные сертификаты для подписи программного обеспечения? Очевидно, программное обеспечение необходимо подписывать из соображений безопасности.
Приобретение сертификатов у такого поставщика, как Verisign, не является вариантом, и, насколько я понимаю, не требуется, чтобы нашему сертификату доверяли.
Как это обычно делается? У меня в компании есть инфраструктура на базе Windows.
Я действительно не думаю, что вы сможете добиться того, чего хотите, без надлежащего признанного стороннего сертификата для подписи кода.
Verisign - не единственный эмитент таких сертификатов; ходите по магазинам, и вы найдете лучшие цены.
Что касается процесса подписи, я использую MS Signtool, как описано здесь: https://stackoverflow.com/questions/2718776/how-do-i-sign-exes-and-dlls-with-my-code-signing-certificate
Вы определенно можете создать свой собственный ЦС и отправить этот ЦС своим клиентам, которым придется установить его в качестве доверенного ЦС на все компьютеры, которые они используют для запуска вашего программного обеспечения. Вам нужно будет управлять (и очень тщательно охранять) ключ CA и убеждать каждого из ваших клиентов сделать это вместе с вами (те, у кого есть что-то, напоминающее политику безопасности, категорически откажутся), а также предоставить подробные инструкции и поддержать его.
Если вы используете ненадежный сертификат, обычно Windows производит больше шума, чем если бы вы вообще не подписывали свои двоичные файлы.
Серьезно, не исключайте покупку одного из них. Если вы выберете такого провайдера, как StartCom, вы можете получить его максимум за 120 долларов за 2 года. Это намного дешевле, чем подписывать его самостоятельно, даже если бы все ваши сотрудники получали минимальную заработную плату.
Вы можете настроить центр сертификации Microsoft, но это, вероятно, не сработает для того, что вы пытаетесь выполнить. Сервер сертификатов Microsoft может использоваться для подписи кода для использования в вашей сети, поскольку вы можете заставить все машины доверять центру сертификации. Это не поможет другим доверять вашему приложению как разработчику без подписи от такого поставщика, как Verisign.
Вот сообщение о подписании приложений Windows 8 с помощью внутреннего PKI, но опять же, это работает для внутренних приложений, а не для внешних. http://blogs.technet.com/b/deploymentguys/archive/2013/06/14/signing-windows-8-applications-using-an-internal-pki.aspx