Сделать свой собственный сертификат для подписи файлов? - PullRequest
4 голосов
/ 24 февраля 2012

Есть ли способ создать собственный сертификат подписи для подписи таких файлов, как установочные пакеты?

Является ли проблема в том, что поставщик сертификатов должен быть надежным источником в Windows, в противном случае вы получите предупреждающие сообщения?

1 Ответ

15 голосов
/ 13 марта 2012

Если у вас есть базовые знания о PKI и X.509, вы можете сделать это с помощью openssl.

В Openssl предварительно настроен CA.pl или сценарий CA.sh , которые можно использовать для настройки CA и создания сертификатов с минимальной конфигурацией.

Основные команды:

# generate CA (need to do it only once)
CA.sh -newca
# create certificate request
openssl req -new -keyout user.key -out user.req -config yourconf.cnf
# sign request by CA
openssl ca -policy policy_anything -config yourconf.cnf -out user.pem -infiles user.req
# convert it into PKCS#12 (pfx) container, that can be used from various soft
openssl pkcs12 -export -in user.pem -inkey user.key -out user.p12 -name user -caname your_ca_name -chain -CAfile ./demoCA/cacert.pem

yourconf.cnf - это основной файл конфигурации, основанный на openssl.cnf по умолчанию, включенном в openssl.Чтобы сделать ваш сертификат пригодным для подписи кода, вы должны указать его в разрешенных полях использования ключа, например: (он ограничит ваш сертификат только подписью кода):

[ usr_cert ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature
extendedKeyUsage = codeSigning  
[ v3_req ]
keyUsage = digitalSignature
extendedKeyUsage = codeSigning

Чтобы использовать этот сертификат в Windows, вы должны установитьваш сертификат CA в хранилище сертификатов windows в качестве центра сертификации.Вы должны делать это на каждом рабочем месте, где вы хотите проверить знаки на ваших файлах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...